Do not reuse ChangeQueryProcessor across repos When importing Pull Requests from multiple repositories the ChangeQueryProcessor cannot be reused because it is a one-shot only instance. Prefer the use of Provider so that every query runs on its own ChangeQueryProcessor. Bug: Issue 9976 Change-Id: I6cfb0d14afe47bcd0016a397b4ac515441c59755
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java index a93ef9e..9ac3324 100644 --- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java +++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java
@@ -74,7 +74,7 @@ private final GenericFactory userFactory; private final Provider<InternalChangeQuery> queryProvider; private final BatchUpdate.Factory updateFactory; - private final QueryProcessor<ChangeData> qp; + private final Provider<ChangeQueryProcessor> qp; private final ChangeQueryBuilder changeQuery; @Inject @@ -85,7 +85,7 @@ IdentifiedUser.GenericFactory userFactory, Provider<InternalChangeQuery> queryProvider, BatchUpdate.Factory batchUpdateFactory, - ChangeQueryProcessor qp, + Provider<ChangeQueryProcessor> qp, ChangeQueryBuilder changeQuery) { this.changeInserterFactory = changeInserterFactory; this.patchSetInserterFactory = patchSetInserterFactory; @@ -225,7 +225,7 @@ private List<ChangeData> queryChangesForSha1(String pullRequestSha1) { QueryResult<ChangeData> results; try { - results = qp.query(changeQuery.commit(pullRequestSha1)); + results = qp.get().query(changeQuery.commit(pullRequestSha1)); return results.entities(); } catch (OrmException | QueryParseException e) { LOG.error(
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java index 60beccd..b2998f5 100644 --- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java +++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/wizard/PullRequestListController.java
@@ -62,7 +62,7 @@ private final ProjectCache projectsCache; private final GitRepositoryManager repoMgr; private final Provider<ReviewDb> schema; - private final ChangeQueryProcessor qp; + private final Provider<ChangeQueryProcessor> qp; private final ChangeQueryBuilder changeQuery; @Inject @@ -71,7 +71,7 @@ GitRepositoryManager repoMgr, Provider<ReviewDb> schema, GitHubConfig config, - ChangeQueryProcessor qp, + Provider<ChangeQueryProcessor> qp, ChangeQueryBuilder changeQuery) { this.projectsCache = projectsCache; this.repoMgr = repoMgr; @@ -196,7 +196,7 @@ try { for (GHPullRequestCommitDetail pullRequestCommit : ghPullRequest.listCommits()) { pullRequestToImport |= - qp.query(changeQuery.commit(pullRequestCommit.getSha())).entities().isEmpty(); + qp.get().query(changeQuery.commit(pullRequestCommit.getSha())).entities().isEmpty(); } return pullRequestToImport; } catch (OrmException | QueryParseException e) {