From 96a4ba47d119d0a16e20db6de3ec77b10ca7d22f Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Thu, 19 Jan 2017 13:41:07 +0100 Subject: [PATCH] SystemGroupBackend: Compute names of system groups only once Change-Id: I18ebbef9e6b0fa6fd1828a3682b23697d7b91190 Signed-off-by: Edwin Kempin --- .../com/google/gerrit/server/group/CreateGroup.java | 3 +-- .../gerrit/server/group/SystemGroupBackend.java | 11 ++++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java index 0fd4728f5e..068ba40797 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java @@ -169,8 +169,7 @@ public class CreateGroup implements RestModifyView throws OrmException, ResourceConflictException, IOException { // Do not allow creating groups with the same name as system groups - List sysGroupNames = SystemGroupBackend.getNames(); - for (String name : sysGroupNames) { + for (String name : SystemGroupBackend.getNames()) { if (name.toLowerCase(Locale.US).equals( createGroupArgs.getGroupName().toLowerCase(Locale.US))) { throw new ResourceConflictException("group '" + name diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/SystemGroupBackend.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/SystemGroupBackend.java index 9809ef35ba..ccddd3154a 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/SystemGroupBackend.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/SystemGroupBackend.java @@ -15,6 +15,7 @@ package com.google.gerrit.server.group; import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.stream.Collectors.toSet; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -33,6 +34,7 @@ import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -96,13 +98,8 @@ public class SystemGroupBackend extends AbstractGroupBackend { return checkNotNull(uuids.get(uuid), "group %s not found", uuid.get()); } - public static List getNames() { - List names = new ArrayList<>(); - for (AccountGroup.UUID uuid : all) { - int c = uuid.get().indexOf(':'); - names.add(uuid.get().substring(c + 1).replace('-', ' ')); - } - return names; + public static Set getNames() { + return names.values().stream().map(r -> r.getName()).collect(toSet()); } @Override