Merge "Fix check for group index in GroupCacheImpl.ByIdLoader"
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCacheImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCacheImpl.java
index 7887929..f1112de 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCacheImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupCacheImpl.java
@@ -34,6 +34,7 @@
 import java.io.IOException;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
+import java.util.function.BooleanSupplier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -150,7 +151,7 @@
   static class ByIdLoader extends CacheLoader<AccountGroup.Id, Optional<InternalGroup>> {
     private final SchemaFactory<ReviewDb> schema;
     private final Groups groups;
-    private final boolean hasGroupIndex;
+    private final BooleanSupplier hasGroupIndex;
     private final Provider<InternalGroupQuery> groupQueryProvider;
 
     @Inject
@@ -161,13 +162,13 @@
         Provider<InternalGroupQuery> groupQueryProvider) {
       this.schema = schema;
       this.groups = groups;
-      this.hasGroupIndex = groupIndexCollection.getSearchIndex() != null;
+      hasGroupIndex = () -> groupIndexCollection.getSearchIndex() != null;
       this.groupQueryProvider = groupQueryProvider;
     }
 
     @Override
     public Optional<InternalGroup> load(AccountGroup.Id key) throws Exception {
-      if (hasGroupIndex) {
+      if (hasGroupIndex.getAsBoolean()) {
         return groupQueryProvider.get().byId(key);
       }