Merge "Fix nits in PerThreadCache"
diff --git a/Documentation/user-search.txt b/Documentation/user-search.txt
index db42826..69a75c9 100644
--- a/Documentation/user-search.txt
+++ b/Documentation/user-search.txt
@@ -108,9 +108,7 @@
 [[ownerin]]
 ownerin:'GROUP'::
 +
-Changes originally submitted by a user in 'GROUP'. When no other index
-predicate is explicitly added in the query, defaults to only include
-changes in status 'OPEN'.
+Changes originally submitted by a user in 'GROUP'.
 
 [[query]]
 query:'NAME'::
@@ -139,9 +137,7 @@
 [[reviewerin]]
 reviewerin:'GROUP'::
 +
-Changes that have been, or need to be, reviewed by a user in 'GROUP'. When
-no other index predicate is explicitly added in the query, defaults to only
-include changes in status 'OPEN'.
+Changes that have been, or need to be, reviewed by a user in 'GROUP'.
 
 [[commit]]
 commit:'SHA1'::
diff --git a/java/com/google/gerrit/index/query/PostFilterPredicate.java b/java/com/google/gerrit/index/query/PostFilterPredicate.java
index 3e780bf..78b4c2b 100644
--- a/java/com/google/gerrit/index/query/PostFilterPredicate.java
+++ b/java/com/google/gerrit/index/query/PostFilterPredicate.java
@@ -18,4 +18,8 @@
  * Matches all documents in the index, with additional filtering done in the subclass's {@code
  * match} method.
  */
-public abstract class PostFilterPredicate<T> extends Predicate<T> implements Matchable<T> {}
+public abstract class PostFilterPredicate<T> extends OperatorPredicate<T> implements Matchable<T> {
+  public PostFilterPredicate(String operator, String value) {
+    super(operator, value);
+  }
+}
diff --git a/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java b/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
index 824fd4f..976813f 100644
--- a/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
+++ b/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.server.index.change;
 
+import static com.google.gerrit.server.query.change.ChangeStatusPredicate.closed;
 import static com.google.gerrit.server.query.change.ChangeStatusPredicate.open;
 
 import com.google.common.collect.Lists;
@@ -139,7 +140,7 @@
       throws QueryParseException {
     Predicate<ChangeData> s = rewriteImpl(in, opts);
     if (!(s instanceof ChangeDataSource)) {
-      in = Predicate.and(open(), in);
+      in = Predicate.and(Predicate.or(open(), closed()), in);
       s = rewriteImpl(in, opts);
     }
     if (!(s instanceof ChangeDataSource)) {
diff --git a/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java b/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java
index f627ec8..ce236dc 100644
--- a/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java
+++ b/java/com/google/gerrit/server/query/account/AccountQueryBuilder.java
@@ -49,6 +49,7 @@
   private static final Logger log = LoggerFactory.getLogger(AccountQueryBuilder.class);
 
   public static final String FIELD_ACCOUNT = "account";
+  public static final String FIELD_CAN_SEE = "cansee";
   public static final String FIELD_EMAIL = "email";
   public static final String FIELD_LIMIT = "limit";
   public static final String FIELD_NAME = "name";
diff --git a/java/com/google/gerrit/server/query/account/CanSeeChangePredicate.java b/java/com/google/gerrit/server/query/account/CanSeeChangePredicate.java
index b5e7b90..b008092 100644
--- a/java/com/google/gerrit/server/query/account/CanSeeChangePredicate.java
+++ b/java/com/google/gerrit/server/query/account/CanSeeChangePredicate.java
@@ -15,7 +15,6 @@
 package com.google.gerrit.server.query.account;
 
 import com.google.gerrit.index.query.PostFilterPredicate;
-import com.google.gerrit.index.query.Predicate;
 import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.account.AccountState;
 import com.google.gerrit.server.notedb.ChangeNotes;
@@ -24,8 +23,6 @@
 import com.google.gerrit.server.permissions.PermissionBackendException;
 import com.google.gwtorm.server.OrmException;
 import com.google.inject.Provider;
-import java.util.Collection;
-import java.util.Objects;
 
 public class CanSeeChangePredicate extends PostFilterPredicate<AccountState> {
   private final Provider<ReviewDb> db;
@@ -34,6 +31,7 @@
 
   CanSeeChangePredicate(
       Provider<ReviewDb> db, PermissionBackend permissionBackend, ChangeNotes changeNotes) {
+    super(AccountQueryBuilder.FIELD_CAN_SEE, changeNotes.getChangeId().toString());
     this.db = db;
     this.permissionBackend = permissionBackend;
     this.changeNotes = changeNotes;
@@ -56,24 +54,4 @@
   public int getCost() {
     return 1;
   }
-
-  @Override
-  public Predicate<AccountState> copy(Collection<? extends Predicate<AccountState>> children) {
-    return new CanSeeChangePredicate(db, permissionBackend, changeNotes);
-  }
-
-  @Override
-  public int hashCode() {
-    return Objects.hash(changeNotes.getChange().getChangeId());
-  }
-
-  @Override
-  public boolean equals(Object other) {
-    if (other == null) {
-      return false;
-    }
-    return getClass() == other.getClass()
-        && changeNotes.getChange().getChangeId()
-            == ((CanSeeChangePredicate) other).changeNotes.getChange().getChangeId();
-  }
 }
diff --git a/java/com/google/gerrit/server/query/change/ChangeOperatorPredicate.java b/java/com/google/gerrit/server/query/change/ChangeOperatorPredicate.java
deleted file mode 100644
index 8b08536..0000000
--- a/java/com/google/gerrit/server/query/change/ChangeOperatorPredicate.java
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2016 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.query.change;
-
-import com.google.gerrit.index.query.Matchable;
-import com.google.gerrit.index.query.OperatorPredicate;
-
-public abstract class ChangeOperatorPredicate extends OperatorPredicate<ChangeData>
-    implements Matchable<ChangeData> {
-
-  protected ChangeOperatorPredicate(String name, String value) {
-    super(name, value);
-  }
-}
diff --git a/java/com/google/gerrit/server/query/change/ConflictsPredicate.java b/java/com/google/gerrit/server/query/change/ConflictsPredicate.java
index e853cc0..f870951 100644
--- a/java/com/google/gerrit/server/query/change/ConflictsPredicate.java
+++ b/java/com/google/gerrit/server/query/change/ConflictsPredicate.java
@@ -15,6 +15,7 @@
 package com.google.gerrit.server.query.change;
 
 import com.google.gerrit.common.data.SubmitTypeRecord;
+import com.google.gerrit.index.query.PostFilterPredicate;
 import com.google.gerrit.index.query.Predicate;
 import com.google.gerrit.index.query.QueryParseException;
 import com.google.gerrit.reviewdb.client.BooleanProjectConfig;
@@ -77,18 +78,17 @@
     and.add(Predicate.or(filePredicates));
 
     ChangeDataCache changeDataCache = new ChangeDataCache(cd, args.projectCache);
-    and.add(new CheckConflict(ChangeQueryBuilder.FIELD_CONFLICTS, value, args, c, changeDataCache));
+    and.add(new CheckConflict(value, args, c, changeDataCache));
     return Predicate.and(and);
   }
 
-  private static final class CheckConflict extends ChangeOperatorPredicate {
+  private static final class CheckConflict extends PostFilterPredicate<ChangeData> {
     private final Arguments args;
     private final Branch.NameKey dest;
     private final ChangeDataCache changeDataCache;
 
-    CheckConflict(
-        String field, String value, Arguments args, Change c, ChangeDataCache changeDataCache) {
-      super(field, value);
+    CheckConflict(String value, Arguments args, Change c, ChangeDataCache changeDataCache) {
+      super(ChangeQueryBuilder.FIELD_CONFLICTS, value);
       this.args = args;
       this.dest = c.getDest();
       this.changeDataCache = changeDataCache;
diff --git a/java/com/google/gerrit/server/query/change/DestinationPredicate.java b/java/com/google/gerrit/server/query/change/DestinationPredicate.java
index 7f969e1..a824a87 100644
--- a/java/com/google/gerrit/server/query/change/DestinationPredicate.java
+++ b/java/com/google/gerrit/server/query/change/DestinationPredicate.java
@@ -14,12 +14,13 @@
 
 package com.google.gerrit.server.query.change;
 
+import com.google.gerrit.index.query.PostFilterPredicate;
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gwtorm.server.OrmException;
 import java.util.Set;
 
-public class DestinationPredicate extends ChangeOperatorPredicate {
+public class DestinationPredicate extends PostFilterPredicate<ChangeData> {
   protected Set<Branch.NameKey> destinations;
 
   public DestinationPredicate(Set<Branch.NameKey> destinations, String value) {
diff --git a/java/com/google/gerrit/server/query/change/OwnerinPredicate.java b/java/com/google/gerrit/server/query/change/OwnerinPredicate.java
index fec7f26..c48bdd5 100644
--- a/java/com/google/gerrit/server/query/change/OwnerinPredicate.java
+++ b/java/com/google/gerrit/server/query/change/OwnerinPredicate.java
@@ -14,25 +14,22 @@
 
 package com.google.gerrit.server.query.change;
 
+import com.google.gerrit.index.query.PostFilterPredicate;
 import com.google.gerrit.reviewdb.client.AccountGroup;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gwtorm.server.OrmException;
 
-public class OwnerinPredicate extends ChangeOperatorPredicate {
+public class OwnerinPredicate extends PostFilterPredicate<ChangeData> {
   protected final IdentifiedUser.GenericFactory userFactory;
   protected final AccountGroup.UUID uuid;
 
   public OwnerinPredicate(IdentifiedUser.GenericFactory userFactory, AccountGroup.UUID uuid) {
-    super(ChangeQueryBuilder.FIELD_OWNERIN, uuid.toString());
+    super(ChangeQueryBuilder.FIELD_OWNERIN, uuid.get());
     this.userFactory = userFactory;
     this.uuid = uuid;
   }
 
-  protected AccountGroup.UUID getAccountGroupUUID() {
-    return uuid;
-  }
-
   @Override
   public boolean match(ChangeData object) throws OrmException {
     final Change change = object.change();
diff --git a/java/com/google/gerrit/server/query/change/ReviewerinPredicate.java b/java/com/google/gerrit/server/query/change/ReviewerinPredicate.java
index 11f9d89..1894b06 100644
--- a/java/com/google/gerrit/server/query/change/ReviewerinPredicate.java
+++ b/java/com/google/gerrit/server/query/change/ReviewerinPredicate.java
@@ -14,17 +14,18 @@
 
 package com.google.gerrit.server.query.change;
 
+import com.google.gerrit.index.query.PostFilterPredicate;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.AccountGroup;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gwtorm.server.OrmException;
 
-public class ReviewerinPredicate extends ChangeOperatorPredicate {
+public class ReviewerinPredicate extends PostFilterPredicate<ChangeData> {
   protected final IdentifiedUser.GenericFactory userFactory;
   protected final AccountGroup.UUID uuid;
 
   public ReviewerinPredicate(IdentifiedUser.GenericFactory userFactory, AccountGroup.UUID uuid) {
-    super(ChangeQueryBuilder.FIELD_REVIEWERIN, uuid.toString());
+    super(ChangeQueryBuilder.FIELD_REVIEWERIN, uuid.get());
     this.userFactory = userFactory;
     this.uuid = uuid;
   }
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
index bf5494f..545c2a5 100644
--- a/javatests/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticQueryAccountsTest.java
@@ -23,7 +23,6 @@
 import com.google.inject.Injector;
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jgit.lib.Config;
-import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -42,7 +41,6 @@
       return;
     }
     nodeInfo = ElasticTestUtils.startElasticsearchNode();
-    ElasticTestUtils.createAllIndexes(nodeInfo);
   }
 
   @AfterClass
@@ -54,19 +52,13 @@
     }
   }
 
-  @After
-  public void cleanupIndex() {
-    if (nodeInfo != null) {
-      ElasticTestUtils.deleteAllIndexes(nodeInfo);
-      ElasticTestUtils.createAllIndexes(nodeInfo);
-    }
-  }
-
   @Override
   protected Injector createInjector() {
     Config elasticsearchConfig = new Config(config);
     InMemoryModule.setDefaults(elasticsearchConfig);
-    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port);
+    String indicesPrefix = testName.getMethodName().toLowerCase() + "_";
+    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port, indicesPrefix);
+    ElasticTestUtils.createAllIndexes(nodeInfo, indicesPrefix);
     return Guice.createInjector(new InMemoryModule(elasticsearchConfig, notesMigration));
   }
 }
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
index 62321b7..d375a0c 100644
--- a/javatests/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticQueryChangesTest.java
@@ -25,7 +25,6 @@
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.lib.Config;
-import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -45,16 +44,6 @@
       return;
     }
     nodeInfo = ElasticTestUtils.startElasticsearchNode();
-
-    ElasticTestUtils.createAllIndexes(nodeInfo);
-  }
-
-  @After
-  public void cleanupIndex() {
-    if (nodeInfo != null) {
-      ElasticTestUtils.deleteAllIndexes(nodeInfo);
-      ElasticTestUtils.createAllIndexes(nodeInfo);
-    }
   }
 
   @AfterClass
@@ -70,7 +59,9 @@
   protected Injector createInjector() {
     Config elasticsearchConfig = new Config(config);
     InMemoryModule.setDefaults(elasticsearchConfig);
-    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port);
+    String indicesPrefix = testName.getMethodName().toLowerCase() + "_";
+    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port, indicesPrefix);
+    ElasticTestUtils.createAllIndexes(nodeInfo, indicesPrefix);
     return Guice.createInjector(new InMemoryModule(elasticsearchConfig, notesMigration));
   }
 
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
index 80b8eb3..82cedc0 100644
--- a/javatests/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticQueryGroupsTest.java
@@ -23,7 +23,6 @@
 import com.google.inject.Injector;
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jgit.lib.Config;
-import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -42,7 +41,6 @@
       return;
     }
     nodeInfo = ElasticTestUtils.startElasticsearchNode();
-    ElasticTestUtils.createAllIndexes(nodeInfo);
   }
 
   @AfterClass
@@ -54,19 +52,13 @@
     }
   }
 
-  @After
-  public void cleanupIndex() {
-    if (nodeInfo != null) {
-      ElasticTestUtils.deleteAllIndexes(nodeInfo);
-      ElasticTestUtils.createAllIndexes(nodeInfo);
-    }
-  }
-
   @Override
   protected Injector createInjector() {
     Config elasticsearchConfig = new Config(config);
     InMemoryModule.setDefaults(elasticsearchConfig);
-    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port);
+    String indicesPrefix = testName.getMethodName().toLowerCase() + "_";
+    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port, indicesPrefix);
+    ElasticTestUtils.createAllIndexes(nodeInfo, indicesPrefix);
     return Guice.createInjector(new InMemoryModule(elasticsearchConfig, notesMigration));
   }
 }
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticQueryProjectsTest.java b/javatests/com/google/gerrit/elasticsearch/ElasticQueryProjectsTest.java
index 9126670..98f9515 100644
--- a/javatests/com/google/gerrit/elasticsearch/ElasticQueryProjectsTest.java
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticQueryProjectsTest.java
@@ -23,7 +23,6 @@
 import com.google.inject.Injector;
 import java.util.concurrent.ExecutionException;
 import org.eclipse.jgit.lib.Config;
-import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -42,7 +41,6 @@
       return;
     }
     nodeInfo = ElasticTestUtils.startElasticsearchNode();
-    ElasticTestUtils.createAllIndexes(nodeInfo);
   }
 
   @AfterClass
@@ -54,19 +52,13 @@
     }
   }
 
-  @After
-  public void cleanupIndex() {
-    if (nodeInfo != null) {
-      ElasticTestUtils.deleteAllIndexes(nodeInfo);
-      ElasticTestUtils.createAllIndexes(nodeInfo);
-    }
-  }
-
   @Override
   protected Injector createInjector() {
     Config elasticsearchConfig = new Config(config);
     InMemoryModule.setDefaults(elasticsearchConfig);
-    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port);
+    String indicesPrefix = testName.getMethodName().toLowerCase() + "_";
+    ElasticTestUtils.configure(elasticsearchConfig, nodeInfo.port, indicesPrefix);
+    ElasticTestUtils.createAllIndexes(nodeInfo, indicesPrefix);
     return Guice.createInjector(new InMemoryModule(elasticsearchConfig, notesMigration));
   }
 }
diff --git a/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java b/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
index 1936707..21609b5 100644
--- a/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
+++ b/javatests/com/google/gerrit/elasticsearch/ElasticTestUtils.java
@@ -70,11 +70,12 @@
     }
   }
 
-  static void configure(Config config, String port) {
+  static void configure(Config config, String port, String prefix) {
     config.setEnum("index", null, "type", IndexType.ELASTICSEARCH);
     config.setString("elasticsearch", "test", "protocol", "http");
     config.setString("elasticsearch", "test", "hostname", "localhost");
     config.setString("elasticsearch", "test", "port", port);
+    config.setString("elasticsearch", null, "prefix", prefix);
   }
 
   static ElasticNodeInfo startElasticsearchNode() throws InterruptedException, ExecutionException {
@@ -121,7 +122,7 @@
     Map<String, NodeInfo> nodes;
   }
 
-  static void createAllIndexes(ElasticNodeInfo nodeInfo) {
+  static void createAllIndexes(ElasticNodeInfo nodeInfo, String prefix) {
     Schema<ChangeData> changeSchema = ChangeSchemaDefinitions.INSTANCE.getLatest();
     ChangeMapping openChangesMapping = new ChangeMapping(changeSchema);
     ChangeMapping closedChangesMapping = new ChangeMapping(changeSchema);
@@ -132,7 +133,7 @@
         .client()
         .admin()
         .indices()
-        .prepareCreate(String.format("%s_%04d", CHANGES, changeSchema.getVersion()))
+        .prepareCreate(String.format("%s%s_%04d", prefix, CHANGES, changeSchema.getVersion()))
         .addMapping(OPEN_CHANGES, gson.toJson(openChangesMapping))
         .addMapping(CLOSED_CHANGES, gson.toJson(closedChangesMapping))
         .execute()
@@ -145,7 +146,7 @@
         .client()
         .admin()
         .indices()
-        .prepareCreate(String.format("%s_%04d", ACCOUNTS, accountSchema.getVersion()))
+        .prepareCreate(String.format("%s%s_%04d", prefix, ACCOUNTS, accountSchema.getVersion()))
         .addMapping(ElasticAccountIndex.ACCOUNTS, gson.toJson(accountMapping))
         .execute()
         .actionGet();
@@ -157,7 +158,7 @@
         .client()
         .admin()
         .indices()
-        .prepareCreate(String.format("%s_%04d", GROUPS, groupSchema.getVersion()))
+        .prepareCreate(String.format("%s%s_%04d", prefix, GROUPS, groupSchema.getVersion()))
         .addMapping(ElasticGroupIndex.GROUPS, gson.toJson(groupMapping))
         .execute()
         .actionGet();
@@ -169,7 +170,7 @@
         .client()
         .admin()
         .indices()
-        .prepareCreate(String.format("%s_%04d", PROJECTS, projectSchema.getVersion()))
+        .prepareCreate(String.format("%s%s_%04d", prefix, PROJECTS, projectSchema.getVersion()))
         .addMapping(ElasticProjectIndex.PROJECTS, gson.toJson(projectMapping))
         .execute()
         .actionGet();
diff --git a/javatests/com/google/gerrit/server/index/change/ChangeIndexRewriterTest.java b/javatests/com/google/gerrit/server/index/change/ChangeIndexRewriterTest.java
index 9cf013b..53994a6 100644
--- a/javatests/com/google/gerrit/server/index/change/ChangeIndexRewriterTest.java
+++ b/javatests/com/google/gerrit/server/index/change/ChangeIndexRewriterTest.java
@@ -70,7 +70,8 @@
     Predicate<ChangeData> out = rewrite(in);
     assertThat(AndChangeSource.class).isSameAs(out.getClass());
     assertThat(out.getChildren())
-        .containsExactly(query(ChangeStatusPredicate.open()), in)
+        .containsExactly(
+            query(Predicate.or(ChangeStatusPredicate.open(), ChangeStatusPredicate.closed())), in)
         .inOrder();
   }
 
@@ -86,7 +87,8 @@
     Predicate<ChangeData> out = rewrite(in);
     assertThat(AndChangeSource.class).isSameAs(out.getClass());
     assertThat(out.getChildren())
-        .containsExactly(query(ChangeStatusPredicate.open()), in)
+        .containsExactly(
+            query(Predicate.or(ChangeStatusPredicate.open(), ChangeStatusPredicate.closed())), in)
         .inOrder();
   }
 
diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index 311dd74..525e030 100644
--- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -753,7 +753,7 @@
     gApi.changes().id(change3.getId().get()).current().submit();
 
     assertQuery("ownerin:Administrators", change1);
-    assertQuery("ownerin:\"Registered Users\"", change2, change1);
+    assertQuery("ownerin:\"Registered Users\"", change3, change2, change1);
     assertQuery("ownerin:\"Registered Users\" project:repo", change3, change2, change1);
     assertQuery("ownerin:\"Registered Users\" status:merged", change3);
   }
@@ -1995,7 +1995,7 @@
     gApi.changes().id(change2.getId().get()).current().review(ReviewInput.approve());
     gApi.changes().id(change2.getId().get()).current().submit();
 
-    assertQuery("reviewerin:" + group);
+    assertQuery("reviewerin:" + group, change2);
     assertQuery("project:repo reviewerin:" + group, change2);
     assertQuery("status:merged reviewerin:" + group, change2);
   }