diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java index b137fb3740..69b29bcf29 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/group/GroupIndexerImpl.java @@ -18,14 +18,16 @@ import com.google.common.collect.ImmutableSet; import com.google.gerrit.common.Nullable; import com.google.gerrit.extensions.events.GroupIndexedListener; import com.google.gerrit.extensions.registration.DynamicSet; +import com.google.gerrit.index.Index; import com.google.gerrit.reviewdb.client.AccountGroup; import com.google.gerrit.server.account.GroupCache; -import com.google.gerrit.server.index.Index; +import com.google.gerrit.server.group.InternalGroup; import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.AssistedInject; import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.Optional; public class GroupIndexerImpl implements GroupIndexer { public interface Factory { @@ -63,8 +65,13 @@ public class GroupIndexerImpl implements GroupIndexer { @Override public void index(AccountGroup.UUID uuid) throws IOException { - for (Index<?, AccountGroup> i : getWriteIndexes()) { - i.replace(groupCache.get(uuid)); + for (Index<AccountGroup.UUID, InternalGroup> i : getWriteIndexes()) { + Optional<InternalGroup> internalGroup = groupCache.get(uuid); + if (internalGroup.isPresent()) { + i.replace(internalGroup.get()); + } else { + i.delete(uuid); + } } fireGroupIndexedEvent(uuid.get()); } |