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) {