Prefer using immutable builder over Immutable*#copyOf(...)
It's better to avoid the copying and rather use an immutable builder
instead.
Bug: Issue 15410
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I9c653ff9592fbfb1f6d002344479f8df13bef6e1
diff --git a/java/com/google/gerrit/server/config/DownloadConfig.java b/java/com/google/gerrit/server/config/DownloadConfig.java
index a718fa4..364f4bf 100644
--- a/java/com/google/gerrit/server/config/DownloadConfig.java
+++ b/java/com/google/gerrit/server/config/DownloadConfig.java
@@ -23,7 +23,6 @@
import com.google.inject.Singleton;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
-import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import org.eclipse.jgit.lib.Config;
@@ -50,7 +49,8 @@
ImmutableSet.of(
CoreDownloadSchemes.SSH, CoreDownloadSchemes.HTTP, CoreDownloadSchemes.ANON_HTTP);
} else {
- List<String> normalized = new ArrayList<>(allSchemes.length);
+ ImmutableSet.Builder<String> normalized =
+ ImmutableSet.builderWithExpectedSize(allSchemes.length);
for (String s : allSchemes) {
String core = toCoreScheme(s);
if (core == null) {
@@ -59,7 +59,7 @@
}
normalized.add(core);
}
- downloadSchemes = ImmutableSet.copyOf(normalized);
+ downloadSchemes = normalized.build();
}
DownloadCommand[] downloadCommandValues = DownloadCommand.values();
diff --git a/java/com/google/gerrit/server/git/validators/AccountValidator.java b/java/com/google/gerrit/server/git/validators/AccountValidator.java
index 4755f5f..873f421 100644
--- a/java/com/google/gerrit/server/git/validators/AccountValidator.java
+++ b/java/com/google/gerrit/server/git/validators/AccountValidator.java
@@ -28,7 +28,6 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.eclipse.jgit.errors.ConfigInvalidException;
@@ -77,7 +76,7 @@
}
}
- List<String> messages = new ArrayList<>();
+ ImmutableList.Builder<String> messages = ImmutableList.builder();
Optional<Account> newAccount;
try {
newAccount = loadAccount(accountId, allUsersRepo, rw, newId, messages);
@@ -108,7 +107,7 @@
}
}
- return ImmutableList.copyOf(messages);
+ return messages.build();
}
private Optional<Account> loadAccount(
@@ -116,7 +115,7 @@
Repository allUsersRepo,
RevWalk rw,
ObjectId commit,
- @Nullable List<String> messages)
+ @Nullable ImmutableList.Builder<String> messages)
throws IOException, ConfigInvalidException {
rw.reset();
AccountConfig accountConfig = new AccountConfig(accountId, allUsersName, allUsersRepo);
diff --git a/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java b/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
index c648d11..dd8534d 100644
--- a/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
+++ b/java/com/google/gerrit/server/group/db/GroupsNoteDbConsistencyChecker.java
@@ -259,7 +259,7 @@
AccountGroup.UUID uuid = groupRef.get().getUUID();
- List<ConsistencyProblemInfo> problems = new ArrayList<>();
+ ImmutableList.Builder<ConsistencyProblemInfo> problems = ImmutableList.builder();
if (!Objects.equals(groupUUID, uuid)) {
problems.add(
warning(
@@ -273,7 +273,7 @@
problems.add(
warning("group note of name '%s' claims to represent name of '%s'", name, actualName));
}
- return ImmutableList.copyOf(problems);
+ return problems.build();
} catch (ConfigInvalidException e) {
return ImmutableList.of(
warning("fail to check consistency with group name notes: %s", e.getMessage()));
diff --git a/java/com/google/gerrit/server/mail/send/CommentFormatter.java b/java/com/google/gerrit/server/mail/send/CommentFormatter.java
index f04ce9d..71f4a90 100644
--- a/java/com/google/gerrit/server/mail/send/CommentFormatter.java
+++ b/java/com/google/gerrit/server/mail/send/CommentFormatter.java
@@ -52,7 +52,7 @@
return ImmutableList.of();
}
- List<Block> result = new ArrayList<>();
+ ImmutableList.Builder<Block> result = ImmutableList.builder();
for (String p : Splitter.on("\n\n").split(source)) {
if (isQuote(p)) {
result.add(makeQuote(p));
@@ -64,7 +64,7 @@
result.add(makeParagraph(p));
}
}
- return ImmutableList.copyOf(result);
+ return result.build();
}
/**
@@ -91,7 +91,7 @@
* @param p The block containing the list (as well as potential paragraphs).
* @param out The list of blocks to append to.
*/
- private static void makeList(String p, List<Block> out) {
+ private static void makeList(String p, ImmutableList.Builder<Block> out) {
Block block = null;
StringBuilder textBuilder = null;
boolean inList = false;
diff --git a/java/com/google/gerrit/server/notedb/ChangeNotes.java b/java/com/google/gerrit/server/notedb/ChangeNotes.java
index bec4b721f..ca636e8 100644
--- a/java/com/google/gerrit/server/notedb/ChangeNotes.java
+++ b/java/com/google/gerrit/server/notedb/ChangeNotes.java
@@ -31,7 +31,6 @@
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
-import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
@@ -275,8 +274,8 @@
public ListMultimap<Project.NameKey, ChangeNotes> create(Predicate<ChangeNotes> predicate)
throws IOException {
- ListMultimap<Project.NameKey, ChangeNotes> m =
- MultimapBuilder.hashKeys().arrayListValues().build();
+ ImmutableListMultimap.Builder<Project.NameKey, ChangeNotes> m =
+ ImmutableListMultimap.builder();
for (Project.NameKey project : projectCache.all()) {
try (Repository repo = args.repoManager.openRepository(project)) {
scan(repo, project)
@@ -286,7 +285,7 @@
.forEach(n -> m.put(n.getProjectName(), n));
}
}
- return ImmutableListMultimap.copyOf(m);
+ return m.build();
}
public Stream<ChangeNotesResult> scan(Repository repo, Project.NameKey project)
diff --git a/java/com/google/gerrit/server/notedb/DraftCommentNotes.java b/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
index 4988406..5d8f57f 100644
--- a/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
+++ b/java/com/google/gerrit/server/notedb/DraftCommentNotes.java
@@ -20,8 +20,6 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ListMultimap;
-import com.google.common.collect.MultimapBuilder;
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.entities.Account;
@@ -124,13 +122,13 @@
reader,
NoteMap.read(reader, tipCommit),
HumanComment.Status.DRAFT);
- ListMultimap<ObjectId, HumanComment> cs = MultimapBuilder.hashKeys().arrayListValues().build();
+ ImmutableListMultimap.Builder<ObjectId, HumanComment> cs = ImmutableListMultimap.builder();
for (ChangeRevisionNote rn : revisionNoteMap.revisionNotes.values()) {
for (HumanComment c : rn.getEntities()) {
cs.put(c.getCommitId(), c);
}
}
- comments = ImmutableListMultimap.copyOf(cs);
+ comments = cs.build();
}
@Override
diff --git a/java/com/google/gerrit/server/notedb/RobotCommentNotes.java b/java/com/google/gerrit/server/notedb/RobotCommentNotes.java
index d53b2ca..2ec68f1 100644
--- a/java/com/google/gerrit/server/notedb/RobotCommentNotes.java
+++ b/java/com/google/gerrit/server/notedb/RobotCommentNotes.java
@@ -15,8 +15,6 @@
package com.google.gerrit.server.notedb;
import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ListMultimap;
-import com.google.common.collect.MultimapBuilder;
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.entities.Change;
@@ -94,13 +92,13 @@
revisionNoteMap =
RevisionNoteMap.parseRobotComments(
args.changeNoteJson, reader, NoteMap.read(reader, tipCommit));
- ListMultimap<ObjectId, RobotComment> cs = MultimapBuilder.hashKeys().arrayListValues().build();
+ ImmutableListMultimap.Builder<ObjectId, RobotComment> cs = ImmutableListMultimap.builder();
for (RobotCommentsRevisionNote rn : revisionNoteMap.revisionNotes.values()) {
for (RobotComment c : rn.getEntities()) {
cs.put(c.getCommitId(), c);
}
}
- comments = ImmutableListMultimap.copyOf(cs);
+ comments = cs.build();
}
@Override
diff --git a/java/com/google/gerrit/server/patch/MergeListBuilder.java b/java/com/google/gerrit/server/patch/MergeListBuilder.java
index 337d940..8964956 100644
--- a/java/com/google/gerrit/server/patch/MergeListBuilder.java
+++ b/java/com/google/gerrit/server/patch/MergeListBuilder.java
@@ -16,8 +16,6 @@
import com.google.common.collect.ImmutableList;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
@@ -40,11 +38,11 @@
}
}
- List<RevCommit> result = new ArrayList<>();
+ ImmutableList.Builder<RevCommit> result = ImmutableList.builder();
RevCommit c;
while ((c = rw.next()) != null) {
result.add(c);
}
- return ImmutableList.copyOf(result);
+ return result.build();
}
}
diff --git a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
index e523d76..39b0f90 100644
--- a/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
+++ b/java/com/google/gerrit/server/permissions/DefaultRefFilter.java
@@ -149,7 +149,8 @@
// we have to investigate separately (deferred tags) then perform a reachability check starting
// from all visible branches (refs/heads/*).
Result initialRefFilter = filterRefs(new ArrayList<>(refs), opts);
- List<Ref> visibleRefs = new ArrayList<>(initialRefFilter.visibleRefs());
+ ImmutableList.Builder<Ref> visibleRefs = ImmutableList.builder();
+ visibleRefs.addAll(initialRefFilter.visibleRefs());
if (!initialRefFilter.deferredTags().isEmpty()) {
try (TraceTimer traceTimer = TraceContext.newTimer("Check visibility of deferred tags")) {
Result allVisibleBranches = filterRefs(getTaggableRefs(repo), opts);
@@ -177,8 +178,9 @@
}
}
- logger.atFinest().log("visible refs = %s", visibleRefs);
- return ImmutableList.copyOf(visibleRefs);
+ ImmutableList<Ref> visibleRefList = visibleRefs.build();
+ logger.atFinest().log("visible refs = %s", visibleRefList);
+ return visibleRefList;
}
/**
@@ -216,8 +218,8 @@
permissionBackend
.user(projectControl.getUser())
.testOrFalse(GlobalPermission.ACCESS_DATABASE);
- List<Ref> resultRefs = new ArrayList<>(refs.size());
- List<Ref> deferredTags = new ArrayList<>();
+ ImmutableList.Builder<Ref> resultRefs = ImmutableList.builderWithExpectedSize(refs.size());
+ ImmutableList.Builder<Ref> deferredTags = ImmutableList.builder();
for (Ref ref : refs) {
String refName = ref.getName();
Change.Id changeId;
@@ -265,9 +267,7 @@
resultRefs.add(ref);
}
}
- Result result =
- new AutoValue_DefaultRefFilter_Result(
- ImmutableList.copyOf(resultRefs), ImmutableList.copyOf(deferredTags));
+ Result result = new AutoValue_DefaultRefFilter_Result(resultRefs.build(), deferredTags.build());
logger.atFinest().log("Result of ref filtering = %s", result);
return result;
}
diff --git a/java/com/google/gerrit/server/permissions/SectionSortCache.java b/java/com/google/gerrit/server/permissions/SectionSortCache.java
index 621f1d0..552d8ee 100644
--- a/java/com/google/gerrit/server/permissions/SectionSortCache.java
+++ b/java/com/google/gerrit/server/permissions/SectionSortCache.java
@@ -128,11 +128,12 @@
public abstract ImmutableList<String> patterns();
static EntryKey create(String refName, List<AccessSection> sections) {
- List<String> patterns = new ArrayList<>(sections.size());
+ ImmutableList.Builder<String> patterns =
+ ImmutableList.builderWithExpectedSize(sections.size());
for (AccessSection s : sections) {
patterns.add(s.getName());
}
- return new AutoValue_SectionSortCache_EntryKey(refName, ImmutableList.copyOf(patterns));
+ return new AutoValue_SectionSortCache_EntryKey(refName, patterns.build());
}
@Memoized
diff --git a/java/com/google/gerrit/server/project/CommentLinkProvider.java b/java/com/google/gerrit/server/project/CommentLinkProvider.java
index 1b9dc37..c2ac68a 100644
--- a/java/com/google/gerrit/server/project/CommentLinkProvider.java
+++ b/java/com/google/gerrit/server/project/CommentLinkProvider.java
@@ -15,7 +15,6 @@
package com.google.gerrit.server.project;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.entities.StoredCommentLinkInfo;
@@ -45,7 +44,8 @@
private List<CommentLinkInfo> parseConfig(Config cfg) {
Set<String> subsections = cfg.getSubsections(ProjectConfig.COMMENTLINK);
- List<CommentLinkInfo> cls = Lists.newArrayListWithCapacity(subsections.size());
+ ImmutableList.Builder<CommentLinkInfo> cls =
+ ImmutableList.builderWithExpectedSize(subsections.size());
for (String name : subsections) {
try {
StoredCommentLinkInfo cl = ProjectConfig.buildCommentLink(cfg, name, true);
@@ -58,7 +58,7 @@
logger.atWarning().log("invalid commentlink: %s", e.getMessage());
}
}
- return ImmutableList.copyOf(cls);
+ return cls.build();
}
@Override
diff --git a/java/com/google/gerrit/server/project/ProjectsConsistencyChecker.java b/java/com/google/gerrit/server/project/ProjectsConsistencyChecker.java
index 39d9aec7..ab4bb70 100644
--- a/java/com/google/gerrit/server/project/ProjectsConsistencyChecker.java
+++ b/java/com/google/gerrit/server/project/ProjectsConsistencyChecker.java
@@ -269,7 +269,7 @@
.call();
// Result for this query that we want to return to the client.
- List<ChangeInfo> autoCloseableChangesByBranch = new ArrayList<>();
+ ImmutableList.Builder<ChangeInfo> autoCloseableChangesByBranch = ImmutableList.builder();
for (ChangeData autoCloseableChange : queryResult) {
// Skip changes that we have already processed, either by this query or by
@@ -306,7 +306,7 @@
}
}
- return ImmutableList.copyOf(autoCloseableChangesByBranch);
+ return autoCloseableChangesByBranch.build();
} catch (Exception e) {
Throwables.throwIfUnchecked(e);
throw new StorageException(e);
diff --git a/java/com/google/gerrit/server/query/change/InternalChangeQuery.java b/java/com/google/gerrit/server/query/change/InternalChangeQuery.java
index 3f8bfda..e7b25fb 100644
--- a/java/com/google/gerrit/server/query/change/InternalChangeQuery.java
+++ b/java/com/google/gerrit/server/query/change/InternalChangeQuery.java
@@ -315,7 +315,7 @@
querySupplier, byProjectGroupsPredicate(indexConfig, project, groups));
}
Set<Change.Id> seen = new HashSet<>();
- List<ChangeData> result = new ArrayList<>();
+ ImmutableList.Builder<ChangeData> result = ImmutableList.builder();
for (List<String> part : Iterables.partition(groups, batchSize)) {
for (ChangeData cd :
queryExhaustively(querySupplier, byProjectGroupsPredicate(indexConfig, project, part))) {
@@ -324,6 +324,6 @@
}
}
}
- return ImmutableList.copyOf(result);
+ return result.build();
}
}
diff --git a/java/com/google/gerrit/server/query/change/OrSource.java b/java/com/google/gerrit/server/query/change/OrSource.java
index 983d9b4..83535c9 100644
--- a/java/com/google/gerrit/server/query/change/OrSource.java
+++ b/java/com/google/gerrit/server/query/change/OrSource.java
@@ -24,7 +24,6 @@
import com.google.gerrit.index.query.OrPredicate;
import com.google.gerrit.index.query.Predicate;
import com.google.gerrit.index.query.ResultSet;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
@@ -52,7 +51,7 @@
getChildren().stream().map(p -> ((ChangeDataSource) p).read()).collect(toImmutableList());
return new LazyResultSet<>(
() -> {
- List<ChangeData> r = new ArrayList<>();
+ ImmutableList.Builder<ChangeData> r = ImmutableList.builder();
Set<Change.Id> have = new HashSet<>();
for (ResultSet<ChangeData> resultSet : results) {
for (ChangeData result : resultSet) {
@@ -61,7 +60,7 @@
}
}
}
- return ImmutableList.copyOf(r);
+ return r.build();
});
}
diff --git a/java/com/google/gerrit/server/query/change/ParentProjectPredicate.java b/java/com/google/gerrit/server/query/change/ParentProjectPredicate.java
index 4f181a4..536aae2 100644
--- a/java/com/google/gerrit/server/query/change/ParentProjectPredicate.java
+++ b/java/com/google/gerrit/server/query/change/ParentProjectPredicate.java
@@ -24,8 +24,6 @@
import com.google.gerrit.server.project.ChildProjects;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectState;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Optional;
public class ParentProjectPredicate extends OrPredicate<ChangeData> {
@@ -46,7 +44,7 @@
return ImmutableList.of();
}
- List<Predicate<ChangeData>> r = new ArrayList<>();
+ ImmutableList.Builder<Predicate<ChangeData>> r = ImmutableList.builder();
r.add(ChangePredicates.project(projectState.get().getNameKey()));
try {
for (ProjectInfo p : childProjects.list(projectState.get().getNameKey())) {
@@ -55,7 +53,7 @@
} catch (PermissionBackendException e) {
logger.atWarning().withCause(e).log("cannot check permissions to expand child projects");
}
- return ImmutableList.copyOf(r);
+ return r.build();
}
@Override
diff --git a/java/com/google/gerrit/server/restapi/change/AllowedFormats.java b/java/com/google/gerrit/server/restapi/change/AllowedFormats.java
index ebec3295..e3ab135 100644
--- a/java/com/google/gerrit/server/restapi/change/AllowedFormats.java
+++ b/java/com/google/gerrit/server/restapi/change/AllowedFormats.java
@@ -22,8 +22,6 @@
import com.google.gerrit.server.config.DownloadConfig;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import java.util.HashMap;
-import java.util.Map;
import java.util.Set;
@Singleton
@@ -33,14 +31,14 @@
@Inject
AllowedFormats(DownloadConfig cfg) {
- Map<String, ArchiveFormatInternal> exts = new HashMap<>();
+ ImmutableMap.Builder<String, ArchiveFormatInternal> exts = ImmutableMap.builder();
for (ArchiveFormatInternal format : cfg.getArchiveFormats()) {
for (String ext : format.getSuffixes()) {
exts.put(ext, format);
}
exts.put(format.name().toLowerCase(), format);
}
- extensions = ImmutableMap.copyOf(exts);
+ extensions = exts.build();
// Zip is not supported because it may be interpreted by a Java plugin as a
// valid JAR file, whose code would have access to cookies on the domain.
diff --git a/java/com/google/gerrit/server/restapi/change/PostReview.java b/java/com/google/gerrit/server/restapi/change/PostReview.java
index 6a89247..4605d7c 100644
--- a/java/com/google/gerrit/server/restapi/change/PostReview.java
+++ b/java/com/google/gerrit/server/restapi/change/PostReview.java
@@ -1318,11 +1318,12 @@
return ImmutableList.of();
}
- List<FixSuggestion> fixSuggestions = new ArrayList<>(fixSuggestionInfos.size());
+ ImmutableList.Builder<FixSuggestion> fixSuggestions =
+ ImmutableList.builderWithExpectedSize(fixSuggestionInfos.size());
for (FixSuggestionInfo fixSuggestionInfo : fixSuggestionInfos) {
fixSuggestions.add(createFixSuggestionFromInput(fixSuggestionInfo));
}
- return ImmutableList.copyOf(fixSuggestions);
+ return fixSuggestions.build();
}
private FixSuggestion createFixSuggestionFromInput(FixSuggestionInfo fixSuggestionInfo) {
diff --git a/java/com/google/gerrit/server/restapi/change/SubmittedTogether.java b/java/com/google/gerrit/server/restapi/change/SubmittedTogether.java
index 74ddae1..2ce82ab 100644
--- a/java/com/google/gerrit/server/restapi/change/SubmittedTogether.java
+++ b/java/com/google/gerrit/server/restapi/change/SubmittedTogether.java
@@ -43,7 +43,6 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.EnumSet;
@@ -176,11 +175,11 @@
}
// Perform more expensive walk-sort.
- List<ChangeData> sorted = new ArrayList<>(cds.size());
+ ImmutableList.Builder<ChangeData> sorted = ImmutableList.builderWithExpectedSize(cds.size());
for (PatchSetData psd : sorter.get().sort(cds)) {
sorted.add(psd.data());
}
- return ImmutableList.copyOf(sorted);
+ return sorted.build();
}
private static List<ChangeData> ensureRequiredDataIsLoaded(List<ChangeData> cds) {
diff --git a/java/com/google/gerrit/server/restapi/project/ListDashboards.java b/java/com/google/gerrit/server/restapi/project/ListDashboards.java
index 9029e11..8cedd60 100644
--- a/java/com/google/gerrit/server/restapi/project/ListDashboards.java
+++ b/java/com/google/gerrit/server/restapi/project/ListDashboards.java
@@ -109,7 +109,7 @@
PermissionBackend.ForProject perm = permissionBackend.currentUser().project(state.getNameKey());
try (Repository git = gitManager.openRepository(state.getNameKey());
RevWalk rw = new RevWalk(git)) {
- List<DashboardInfo> all = new ArrayList<>();
+ ImmutableList.Builder<DashboardInfo> all = ImmutableList.builder();
for (Ref ref : git.getRefDatabase().getRefsByPrefix(REFS_DASHBOARDS)) {
try {
perm.ref(ref.getName()).check(RefPermission.READ);
@@ -118,7 +118,7 @@
// Do nothing.
}
}
- return ImmutableList.copyOf(all);
+ return all.build();
} catch (RepositoryNotFoundException e) {
throw new ResourceNotFoundException(project, e);
}
@@ -132,7 +132,7 @@
String project,
boolean setDefault)
throws IOException {
- List<DashboardInfo> list = new ArrayList<>();
+ ImmutableList.Builder<DashboardInfo> list = ImmutableList.builder();
try (TreeWalk tw = new TreeWalk(rw.getObjectReader())) {
tw.addTree(rw.parseTree(ref.getObjectId()));
tw.setRecursive(true);
@@ -155,6 +155,6 @@
}
}
}
- return ImmutableList.copyOf(list);
+ return list.build();
}
}
diff --git a/java/com/google/gerrit/server/restapi/project/SetAccessUtil.java b/java/com/google/gerrit/server/restapi/project/SetAccessUtil.java
index 0a9503f..205420c 100644
--- a/java/com/google/gerrit/server/restapi/project/SetAccessUtil.java
+++ b/java/com/google/gerrit/server/restapi/project/SetAccessUtil.java
@@ -42,7 +42,6 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -72,7 +71,8 @@
return ImmutableList.of();
}
- List<AccessSection> sections = new ArrayList<>(sectionInfos.size());
+ ImmutableList.Builder<AccessSection> sections =
+ ImmutableList.builderWithExpectedSize(sectionInfos.size());
for (Map.Entry<String, AccessSectionInfo> entry : sectionInfos.entrySet()) {
if (entry.getValue().permissions == null) {
continue;
@@ -120,7 +120,7 @@
}
sections.add(accessSection.build());
}
- return ImmutableList.copyOf(sections);
+ return sections.build();
}
/**
diff --git a/java/com/google/gerrit/server/submit/CherryPick.java b/java/com/google/gerrit/server/submit/CherryPick.java
index 84b0ab7..b218347 100644
--- a/java/com/google/gerrit/server/submit/CherryPick.java
+++ b/java/com/google/gerrit/server/submit/CherryPick.java
@@ -31,7 +31,6 @@
import com.google.gerrit.server.update.ChangeContext;
import com.google.gerrit.server.update.RepoContext;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.jgit.lib.ObjectId;
@@ -47,7 +46,8 @@
@Override
public ImmutableList<SubmitStrategyOp> buildOps(Collection<CodeReviewCommit> toMerge) {
List<CodeReviewCommit> sorted = CodeReviewCommit.ORDER.sortedCopy(toMerge);
- List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size());
+ ImmutableList.Builder<SubmitStrategyOp> ops =
+ ImmutableList.builderWithExpectedSize(sorted.size());
boolean first = true;
while (!sorted.isEmpty()) {
CodeReviewCommit n = sorted.remove(0);
@@ -62,7 +62,7 @@
}
first = false;
}
- return ImmutableList.copyOf(ops);
+ return ops.build();
}
private class CherryPickRootOp extends SubmitStrategyOp {
diff --git a/java/com/google/gerrit/server/submit/FastForwardOnly.java b/java/com/google/gerrit/server/submit/FastForwardOnly.java
index ad01d31..ee8fec8 100644
--- a/java/com/google/gerrit/server/submit/FastForwardOnly.java
+++ b/java/com/google/gerrit/server/submit/FastForwardOnly.java
@@ -18,7 +18,6 @@
import com.google.gerrit.entities.BranchNameKey;
import com.google.gerrit.server.git.CodeReviewCommit;
import com.google.gerrit.server.update.RepoContext;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@@ -47,7 +46,8 @@
}
}
- List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size());
+ ImmutableList.Builder<SubmitStrategyOp> ops =
+ ImmutableList.builderWithExpectedSize(sorted.size());
CodeReviewCommit newTipCommit =
args.mergeUtil.getFirstFastForward(args.mergeTip.getInitialTip(), args.rw, sorted);
if (!newTipCommit.equals(args.mergeTip.getInitialTip())) {
@@ -57,7 +57,7 @@
ops.add(new NotFastForwardOp(c));
}
}
- return ImmutableList.copyOf(ops);
+ return ops.build();
}
private class NotFastForwardOp extends SubmitStrategyOp {
diff --git a/java/com/google/gerrit/server/submit/MergeAlways.java b/java/com/google/gerrit/server/submit/MergeAlways.java
index 7258448..1118a29 100644
--- a/java/com/google/gerrit/server/submit/MergeAlways.java
+++ b/java/com/google/gerrit/server/submit/MergeAlways.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.gerrit.server.git.CodeReviewCommit;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -28,7 +27,8 @@
@Override
public ImmutableList<SubmitStrategyOp> buildOps(Collection<CodeReviewCommit> toMerge) {
List<CodeReviewCommit> sorted = args.mergeUtil.reduceToMinimalMerge(args.mergeSorter, toMerge);
- List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size());
+ ImmutableList.Builder<SubmitStrategyOp> ops =
+ ImmutableList.builderWithExpectedSize(sorted.size());
if (args.mergeTip.getInitialTip() == null && !sorted.isEmpty()) {
// The branch is unborn. Take a fast-forward resolution to
// create the branch.
@@ -39,7 +39,7 @@
CodeReviewCommit n = sorted.remove(0);
ops.add(new MergeOneOp(args, n));
}
- return ImmutableList.copyOf(ops);
+ return ops.build();
}
static boolean dryRun(
diff --git a/java/com/google/gerrit/server/submit/MergeIfNecessary.java b/java/com/google/gerrit/server/submit/MergeIfNecessary.java
index 29fc240..75136f5 100644
--- a/java/com/google/gerrit/server/submit/MergeIfNecessary.java
+++ b/java/com/google/gerrit/server/submit/MergeIfNecessary.java
@@ -16,7 +16,6 @@
import com.google.common.collect.ImmutableList;
import com.google.gerrit.server.git.CodeReviewCommit;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -28,7 +27,8 @@
@Override
public ImmutableList<SubmitStrategyOp> buildOps(Collection<CodeReviewCommit> toMerge) {
List<CodeReviewCommit> sorted = args.mergeUtil.reduceToMinimalMerge(args.mergeSorter, toMerge);
- List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size());
+ ImmutableList.Builder<SubmitStrategyOp> ops =
+ ImmutableList.builderWithExpectedSize(sorted.size());
if (args.mergeTip.getInitialTip() == null
|| !args.subscriptionGraph.hasSubscription(args.destBranch)) {
@@ -44,7 +44,7 @@
CodeReviewCommit n = sorted.remove(0);
ops.add(new MergeOneOp(args, n));
}
- return ImmutableList.copyOf(ops);
+ return ops.build();
}
static boolean dryRun(
diff --git a/java/com/google/gerrit/server/submit/RebaseSubmitStrategy.java b/java/com/google/gerrit/server/submit/RebaseSubmitStrategy.java
index 1409775..cfb2f88 100644
--- a/java/com/google/gerrit/server/submit/RebaseSubmitStrategy.java
+++ b/java/com/google/gerrit/server/submit/RebaseSubmitStrategy.java
@@ -38,7 +38,6 @@
import com.google.gerrit.server.update.PostUpdateContext;
import com.google.gerrit.server.update.RepoContext;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.jgit.lib.ObjectId;
@@ -97,7 +96,8 @@
foundNonMerge = true;
}
- List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size());
+ ImmutableList.Builder<SubmitStrategyOp> ops =
+ ImmutableList.builderWithExpectedSize(sorted.size());
boolean first = true;
while (!sorted.isEmpty()) {
CodeReviewCommit n = sorted.remove(0);
@@ -114,7 +114,7 @@
}
first = false;
}
- return ImmutableList.copyOf(ops);
+ return ops.build();
}
private class RebaseRootOp extends SubmitStrategyOp {
diff --git a/java/com/google/gerrit/server/update/BatchUpdate.java b/java/com/google/gerrit/server/update/BatchUpdate.java
index 9edfdc4..f26882a 100644
--- a/java/com/google/gerrit/server/update/BatchUpdate.java
+++ b/java/com/google/gerrit/server/update/BatchUpdate.java
@@ -620,7 +620,8 @@
return ImmutableList.of();
}
logDebug("Reindexing %d changes", results.size());
- List<ListenableFuture<ChangeData>> indexFutures = new ArrayList<>(results.size());
+ ImmutableList.Builder<ListenableFuture<ChangeData>> indexFutures =
+ ImmutableList.builderWithExpectedSize(results.size());
for (Map.Entry<Change.Id, ChangeResult> e : results.entrySet()) {
Change.Id id = e.getKey();
switch (e.getValue()) {
@@ -636,7 +637,7 @@
throw new IllegalStateException("unexpected result: " + e.getValue());
}
}
- return ImmutableList.copyOf(indexFutures);
+ return indexFutures.build();
}
}
diff --git a/java/com/google/gerrit/server/util/AccountTemplateUtil.java b/java/com/google/gerrit/server/util/AccountTemplateUtil.java
index 1b39bef..93d7086 100644
--- a/java/com/google/gerrit/server/util/AccountTemplateUtil.java
+++ b/java/com/google/gerrit/server/util/AccountTemplateUtil.java
@@ -24,9 +24,7 @@
import com.google.gerrit.server.account.AccountState;
import com.google.inject.Inject;
import com.google.inject.Singleton;
-import java.util.HashSet;
import java.util.Optional;
-import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -62,7 +60,7 @@
return ImmutableSet.of();
}
Matcher matcher = ACCOUNT_TEMPLATE_PATTERN.matcher(textTemplate);
- Set<Account.Id> accountsInTemplate = new HashSet<>();
+ ImmutableSet.Builder<Account.Id> accountsInTemplate = ImmutableSet.builder();
while (matcher.find()) {
String accountId = matcher.group(1);
Optional<Account.Id> parsedAccountId = Account.Id.tryParse(accountId);
@@ -72,7 +70,7 @@
logger.atFine().log("Failed to parse accountId from template %s", matcher.group());
}
}
- return ImmutableSet.copyOf(accountsInTemplate);
+ return accountsInTemplate.build();
}
public static String getAccountTemplate(Account.Id accountId) {
diff --git a/java/com/google/gerrit/testing/IndexVersions.java b/java/com/google/gerrit/testing/IndexVersions.java
index f245665..3810707 100644
--- a/java/com/google/gerrit/testing/IndexVersions.java
+++ b/java/com/google/gerrit/testing/IndexVersions.java
@@ -96,7 +96,7 @@
return ImmutableList.copyOf(schemas.keySet());
}
- List<Integer> versions = new ArrayList<>();
+ ImmutableList.Builder<Integer> versions = ImmutableList.builder();
for (String s : Splitter.on(',').trimResults().split(value)) {
if (CURRENT.equals(s)) {
versions.add(schemaDef.getLatest().getVersion());
@@ -115,15 +115,15 @@
versions.add(version);
}
}
- return ImmutableList.copyOf(versions);
+ return versions.build();
}
- List<Integer> schemaVersions = new ArrayList<>(2);
+ ImmutableList.Builder<Integer> schemaVersions = ImmutableList.builderWithExpectedSize(2);
if (schemaDef.getPrevious() != null) {
schemaVersions.add(schemaDef.getPrevious().getVersion());
}
schemaVersions.add(schemaDef.getLatest().getVersion());
- return ImmutableList.copyOf(schemaVersions);
+ return schemaVersions.build();
}
public static <V> Map<String, Config> asConfigMap(
diff --git a/javatests/com/google/gerrit/acceptance/pgm/IndexUpgradeController.java b/javatests/com/google/gerrit/acceptance/pgm/IndexUpgradeController.java
index 9cdcb40..7d8794b 100644
--- a/javatests/com/google/gerrit/acceptance/pgm/IndexUpgradeController.java
+++ b/javatests/com/google/gerrit/acceptance/pgm/IndexUpgradeController.java
@@ -22,8 +22,6 @@
import com.google.gerrit.server.index.OnlineUpgradeListener;
import com.google.inject.AbstractModule;
import com.google.inject.Module;
-import java.util.ArrayList;
-import java.util.List;
import java.util.concurrent.CountDownLatch;
class IndexUpgradeController implements OnlineUpgradeListener {
@@ -45,18 +43,18 @@
private final CountDownLatch started;
private final CountDownLatch finished;
- private final List<UpgradeAttempt> startedAttempts;
- private final List<UpgradeAttempt> succeededAttempts;
- private final List<UpgradeAttempt> failedAttempts;
+ private final ImmutableList.Builder<UpgradeAttempt> startedAttempts;
+ private final ImmutableList.Builder<UpgradeAttempt> succeededAttempts;
+ private final ImmutableList.Builder<UpgradeAttempt> failedAttempts;
IndexUpgradeController(int numExpected) {
this.numExpected = numExpected;
readyToStart = new CountDownLatch(1);
started = new CountDownLatch(numExpected);
finished = new CountDownLatch(numExpected);
- startedAttempts = new ArrayList<>();
- succeededAttempts = new ArrayList<>();
- failedAttempts = new ArrayList<>();
+ startedAttempts = ImmutableList.builder();
+ succeededAttempts = ImmutableList.builder();
+ failedAttempts = ImmutableList.builder();
}
Module module() {
@@ -93,7 +91,7 @@
finish(UpgradeAttempt.create(name, oldVersion, newVersion), failedAttempts);
}
- private synchronized void finish(UpgradeAttempt a, List<UpgradeAttempt> out) {
+ private synchronized void finish(UpgradeAttempt a, ImmutableList.Builder<UpgradeAttempt> out) {
checkState(readyToStart.getCount() == 0, "shouldn't be finishing upgrade before starting");
checkState(
finished.getCount() > 0, "already finished %s upgrades, can't finish %s", numExpected, a);
@@ -108,14 +106,14 @@
}
synchronized ImmutableList<UpgradeAttempt> getStartedAttempts() {
- return ImmutableList.copyOf(startedAttempts);
+ return startedAttempts.build();
}
synchronized ImmutableList<UpgradeAttempt> getSucceededAttempts() {
- return ImmutableList.copyOf(succeededAttempts);
+ return succeededAttempts.build();
}
synchronized ImmutableList<UpgradeAttempt> getFailedAttempts() {
- return ImmutableList.copyOf(failedAttempts);
+ return failedAttempts.build();
}
}
diff --git a/javatests/com/google/gerrit/acceptance/ssh/SshTraceIT.java b/javatests/com/google/gerrit/acceptance/ssh/SshTraceIT.java
index ae45d90..ce5cff7 100644
--- a/javatests/com/google/gerrit/acceptance/ssh/SshTraceIT.java
+++ b/javatests/com/google/gerrit/acceptance/ssh/SshTraceIT.java
@@ -31,8 +31,6 @@
import com.google.gerrit.server.validators.ProjectCreationValidationListener;
import com.google.gerrit.server.validators.ValidationException;
import com.google.inject.Inject;
-import java.util.ArrayList;
-import java.util.List;
import org.junit.Test;
@UseSsh
@@ -120,7 +118,7 @@
}
private static class TestPerformanceLogger implements PerformanceLogger {
- private List<PerformanceLogEntry> logEntries = new ArrayList<>();
+ private ImmutableList.Builder<PerformanceLogEntry> logEntries = ImmutableList.builder();
@Override
public void log(String operation, long durationMs, Metadata metadata) {
@@ -128,7 +126,7 @@
}
ImmutableList<PerformanceLogEntry> logEntries() {
- return ImmutableList.copyOf(logEntries);
+ return logEntries.build();
}
}
diff --git a/javatests/com/google/gerrit/server/logging/PerformanceLogContextTest.java b/javatests/com/google/gerrit/server/logging/PerformanceLogContextTest.java
index fefa066..e60d6b4 100644
--- a/javatests/com/google/gerrit/server/logging/PerformanceLogContextTest.java
+++ b/javatests/com/google/gerrit/server/logging/PerformanceLogContextTest.java
@@ -32,8 +32,6 @@
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
-import java.util.ArrayList;
-import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.eclipse.jgit.lib.Config;
import org.junit.After;
@@ -360,7 +358,7 @@
}
private static class TestPerformanceLogger implements PerformanceLogger {
- private List<PerformanceLogEntry> logEntries = new ArrayList<>();
+ private ImmutableList.Builder<PerformanceLogEntry> logEntries = ImmutableList.builder();
@Override
public void log(String operation, long durationMs, Metadata metadata) {
@@ -368,7 +366,7 @@
}
ImmutableList<PerformanceLogEntry> logEntries() {
- return ImmutableList.copyOf(logEntries);
+ return logEntries.build();
}
}
diff --git a/javatests/com/google/gerrit/server/schema/NoteDbSchemaUpdaterTest.java b/javatests/com/google/gerrit/server/schema/NoteDbSchemaUpdaterTest.java
index 646f0cd..767ac28 100644
--- a/javatests/com/google/gerrit/server/schema/NoteDbSchemaUpdaterTest.java
+++ b/javatests/com/google/gerrit/server/schema/NoteDbSchemaUpdaterTest.java
@@ -34,8 +34,6 @@
import com.google.gerrit.testing.InMemoryRepositoryManager;
import com.google.gerrit.testing.TestUpdateUI;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Optional;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
import org.eclipse.jgit.junit.TestRepository;
@@ -84,7 +82,7 @@
protected final NoteDbSchemaUpdater updater;
protected final GitRepositoryManager repoManager;
protected final NoteDbSchemaVersion.Arguments args;
- private final List<String> messages;
+ private final ImmutableList.Builder<String> messages;
TestUpdate(Optional<Integer> initialVersion) {
cfg = new Config();
@@ -106,7 +104,7 @@
versionManager,
args,
ImmutableSortedMap.of(10, TestSchema_10.class, 11, TestSchema_11.class));
- messages = new ArrayList<>();
+ messages = ImmutableList.builder();
}
private class TestSchemaCreator implements SchemaCreator {
@@ -173,7 +171,7 @@
}
ImmutableList<String> getMessages() {
- return ImmutableList.copyOf(messages);
+ return messages.build();
}
Optional<Integer> readVersion() throws Exception {