Migrate from to-be-deprecated multimap factory methods

Guava will soon prefer explicitly stating intention with
MultimapBuilder, rather than callers having to know about specific
Multimap implementations.

Change-Id: I96babb895eb5a51f27ef65f02eaf99bf07d913a9
This commit is contained in:
Dave Borowitz
2016-12-07 10:04:10 -05:00
committed by Edwin Kempin
parent 6360a1b694
commit b3e1918cc8
30 changed files with 98 additions and 83 deletions

View File

@@ -17,15 +17,16 @@ package com.google.gerrit.audit;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.common.TimeUtil; import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.CurrentUser;
public class AuditEvent { public class AuditEvent {
public static final String UNKNOWN_SESSION_ID = "000000000000000000000000000"; public static final String UNKNOWN_SESSION_ID = "000000000000000000000000000";
protected static final Multimap<String, ?> EMPTY_PARAMS = HashMultimap.create(); protected static final Multimap<String, ?> EMPTY_PARAMS =
MultimapBuilder.hashKeys().hashSetValues().build();
public final String sessionId; public final String sessionId;
public final CurrentUser who; public final CurrentUser who;

View File

@@ -16,10 +16,10 @@ package com.google.gerrit.server.account;
import static com.google.gerrit.server.account.GroupBackends.GROUP_REF_NAME_COMPARATOR; import static com.google.gerrit.server.account.GroupBackends.GROUP_REF_NAME_COMPARATOR;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.GroupDescription; import com.google.gerrit.common.data.GroupDescription;
@@ -139,7 +139,7 @@ public class UniversalGroupBackend implements GroupBackend {
@Override @Override
public boolean containsAnyOf(Iterable<AccountGroup.UUID> uuids) { public boolean containsAnyOf(Iterable<AccountGroup.UUID> uuids) {
Multimap<GroupMembership, AccountGroup.UUID> lookups = Multimap<GroupMembership, AccountGroup.UUID> lookups =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (AccountGroup.UUID uuid : uuids) { for (AccountGroup.UUID uuid : uuids) {
if (uuid == null) { if (uuid == null) {
continue; continue;
@@ -169,7 +169,7 @@ public class UniversalGroupBackend implements GroupBackend {
@Override @Override
public Set<AccountGroup.UUID> intersection(Iterable<AccountGroup.UUID> uuids) { public Set<AccountGroup.UUID> intersection(Iterable<AccountGroup.UUID> uuids) {
Multimap<GroupMembership, AccountGroup.UUID> lookups = Multimap<GroupMembership, AccountGroup.UUID> lookups =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (AccountGroup.UUID uuid : uuids) { for (AccountGroup.UUID uuid : uuids) {
if (uuid == null) { if (uuid == null) {
continue; continue;

View File

@@ -23,10 +23,10 @@ import com.google.common.base.Enums;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account;
@@ -258,7 +258,8 @@ public class WatchConfig extends VersionedMetaData
cfg.unsetSection(PROJECT, projectName); cfg.unsetSection(PROJECT, projectName);
} }
Multimap<String, String> notifyValuesByProject = ArrayListMultimap.create(); Multimap<String, String> notifyValuesByProject =
MultimapBuilder.hashKeys().arrayListValues().build();
for (Map.Entry<ProjectWatchKey, Set<NotifyType>> e : projectWatches for (Map.Entry<ProjectWatchKey, Set<NotifyType>> e : projectWatches
.entrySet()) { .entrySet()) {
NotifyValue notifyValue = NotifyValue notifyValue =

View File

@@ -44,7 +44,6 @@ import com.google.common.base.MoreObjects;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.google.common.collect.FluentIterable; import com.google.common.collect.FluentIterable;
import com.google.common.collect.HashBasedTable; import com.google.common.collect.HashBasedTable;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@@ -52,6 +51,7 @@ import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.collect.Table; import com.google.common.collect.Table;
@@ -820,7 +820,8 @@ public class ChangeJson {
} }
Set<String> labelNames = new HashSet<>(); Set<String> labelNames = new HashSet<>();
Multimap<Account.Id, PatchSetApproval> current = HashMultimap.create(); Multimap<Account.Id, PatchSetApproval> current =
MultimapBuilder.hashKeys().hashSetValues().build();
for (PatchSetApproval a : cd.currentApprovals()) { for (PatchSetApproval a : cd.currentApprovals()) {
allUsers.add(a.getAccountId()); allUsers.add(a.getAccountId());
LabelType type = labelTypes.byLabel(a.getLabelId()); LabelType type = labelTypes.byLabel(a.getLabelId());

View File

@@ -14,8 +14,8 @@
package com.google.gerrit.server.change; package com.google.gerrit.server.change;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.extensions.common.BlameInfo; import com.google.gerrit.extensions.common.BlameInfo;
import com.google.gerrit.extensions.common.RangeInfo; import com.google.gerrit.extensions.common.RangeInfo;
import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -132,7 +132,8 @@ public class GetBlame implements RestReadView<FileResource> {
private List<BlameInfo> blame(ObjectId id, String path, private List<BlameInfo> blame(ObjectId id, String path,
Repository repository, RevWalk revWalk) throws IOException { Repository repository, RevWalk revWalk) throws IOException {
ListMultimap<BlameInfo, RangeInfo> ranges = ArrayListMultimap.create(); ListMultimap<BlameInfo, RangeInfo> ranges =
MultimapBuilder.hashKeys().arrayListValues().build();
List<BlameInfo> result = new ArrayList<>(); List<BlameInfo> result = new ArrayList<>();
if (blameCache.findLastCommit(repository, id, path) == null) { if (blameCache.findLastCommit(repository, id, path) == null) {
return result; return result;

View File

@@ -14,8 +14,8 @@
package com.google.gerrit.server.change; package com.google.gerrit.server.change;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.extensions.config.ExternalIncludedIn; import com.google.gerrit.extensions.config.ExternalIncludedIn;
import com.google.gerrit.extensions.registration.DynamicSet; import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -81,7 +81,8 @@ class IncludedIn implements RestReadView<ChangeResource> {
} }
IncludedInResolver.Result d = IncludedInResolver.resolve(r, rw, rev); IncludedInResolver.Result d = IncludedInResolver.resolve(r, rw, rev);
Multimap<String, String> external = ArrayListMultimap.create(); Multimap<String, String> external =
MultimapBuilder.hashKeys().arrayListValues().build();
for (ExternalIncludedIn ext : includedIn) { for (ExternalIncludedIn ext : includedIn) {
Multimap<String, String> extIncludedIns = ext.getIncludedIn( Multimap<String, String> extIncludedIns = ext.getIncludedIn(
project.get(), rev.name(), d.getTags(), d.getBranches()); project.get(), rev.name(), d.getTags(), d.getBranches());

View File

@@ -19,11 +19,11 @@ import static com.google.common.base.Preconditions.checkNotNull;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
@@ -72,10 +72,10 @@ class RelatedChangesSorter {
// Map of patch set -> immediate parent. // Map of patch set -> immediate parent.
ListMultimap<PatchSetData, PatchSetData> parents = ListMultimap<PatchSetData, PatchSetData> parents =
ArrayListMultimap.create(in.size(), 3); MultimapBuilder.hashKeys(in.size()).arrayListValues(3).build();
// Map of patch set -> immediate children. // Map of patch set -> immediate children.
ListMultimap<PatchSetData, PatchSetData> children = ListMultimap<PatchSetData, PatchSetData> children =
ArrayListMultimap.create(in.size(), 3); MultimapBuilder.hashKeys(in.size()).arrayListValues(3).build();
// All other patch sets of the same change as startPs. // All other patch sets of the same change as startPs.
List<PatchSetData> otherPatchSetsOfStart = new ArrayList<>(); List<PatchSetData> otherPatchSetsOfStart = new ArrayList<>();

View File

@@ -18,10 +18,10 @@ import static com.google.common.base.Preconditions.checkState;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
@@ -106,7 +106,7 @@ class WalkSorter {
public Iterable<PatchSetData> sort(Iterable<ChangeData> in) public Iterable<PatchSetData> sort(Iterable<ChangeData> in)
throws OrmException, IOException { throws OrmException, IOException {
Multimap<Project.NameKey, ChangeData> byProject = Multimap<Project.NameKey, ChangeData> byProject =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (ChangeData cd : in) { for (ChangeData cd : in) {
byProject.put(cd.change().getProject(), cd); byProject.put(cd.change().getProject(), cd);
} }
@@ -152,7 +152,8 @@ class WalkSorter {
Set<RevCommit> commits = byCommit.keySet(); Set<RevCommit> commits = byCommit.keySet();
Multimap<RevCommit, RevCommit> children = collectChildren(commits); Multimap<RevCommit, RevCommit> children = collectChildren(commits);
Multimap<RevCommit, RevCommit> pending = ArrayListMultimap.create(); Multimap<RevCommit, RevCommit> pending =
MultimapBuilder.hashKeys().arrayListValues().build();
Deque<RevCommit> todo = new ArrayDeque<>(); Deque<RevCommit> todo = new ArrayDeque<>();
RevFlag done = rw.newFlag("done"); RevFlag done = rw.newFlag("done");
@@ -196,7 +197,8 @@ class WalkSorter {
private static Multimap<RevCommit, RevCommit> collectChildren( private static Multimap<RevCommit, RevCommit> collectChildren(
Set<RevCommit> commits) { Set<RevCommit> commits) {
Multimap<RevCommit, RevCommit> children = ArrayListMultimap.create(); Multimap<RevCommit, RevCommit> children =
MultimapBuilder.hashKeys().arrayListValues().build();
for (RevCommit c : commits) { for (RevCommit c : commits) {
for (RevCommit p : c.getParents()) { for (RevCommit p : c.getParents()) {
if (commits.contains(p)) { if (commits.contains(p)) {
@@ -224,7 +226,7 @@ class WalkSorter {
private Multimap<RevCommit, PatchSetData> byCommit(RevWalk rw, private Multimap<RevCommit, PatchSetData> byCommit(RevWalk rw,
Collection<ChangeData> in) throws OrmException, IOException { Collection<ChangeData> in) throws OrmException, IOException {
Multimap<RevCommit, PatchSetData> byCommit = Multimap<RevCommit, PatchSetData> byCommit =
ArrayListMultimap.create(in.size(), 1); MultimapBuilder.hashKeys(in.size()).arrayListValues(1).build();
for (ChangeData cd : in) { for (ChangeData cd : in) {
PatchSet maxPs = null; PatchSet maxPs = null;
for (PatchSet ps : cd.patchSets()) { for (PatchSet ps : cd.patchSets()) {

View File

@@ -14,13 +14,13 @@
package com.google.gerrit.server.git; package com.google.gerrit.server.git;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableCollection;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.server.query.change.ChangeData; import com.google.gerrit.server.query.change.ChangeData;
@@ -85,7 +85,7 @@ public class ChangeSet {
public Multimap<Branch.NameKey, ChangeData> changesByBranch() public Multimap<Branch.NameKey, ChangeData> changesByBranch()
throws OrmException { throws OrmException {
ListMultimap<Branch.NameKey, ChangeData> ret = ListMultimap<Branch.NameKey, ChangeData> ret =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (ChangeData cd : changeData.values()) { for (ChangeData cd : changeData.values()) {
ret.put(cd.change().getDest(), cd); ret.put(cd.change().getDest(), cd);
} }

View File

@@ -14,8 +14,8 @@
package com.google.gerrit.server.git; package com.google.gerrit.server.git;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Branch;
@@ -27,7 +27,8 @@ import java.util.Set;
public class DestinationList extends TabFile { public class DestinationList extends TabFile {
public static final String DIR_NAME = "destinations"; public static final String DIR_NAME = "destinations";
private SetMultimap<String, Branch.NameKey> destinations = HashMultimap.create(); private SetMultimap<String, Branch.NameKey> destinations =
MultimapBuilder.hashKeys().hashSetValues().build();
public Set<Branch.NameKey> getDestinations(String label) { public Set<Branch.NameKey> getDestinations(String label) {
return destinations.get(label); return destinations.get(label);

View File

@@ -18,8 +18,6 @@ import static com.google.common.base.Preconditions.checkState;
import static org.eclipse.jgit.revwalk.RevFlag.UNINTERESTING; import static org.eclipse.jgit.revwalk.RevFlag.UNINTERESTING;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@@ -150,8 +148,8 @@ public class GroupCollector {
Lookup groupLookup) { Lookup groupLookup) {
this.patchSetsBySha = patchSetsBySha; this.patchSetsBySha = patchSetsBySha;
this.groupLookup = groupLookup; this.groupLookup = groupLookup;
groups = ArrayListMultimap.create(); groups = MultimapBuilder.hashKeys().arrayListValues().build();
groupAliases = HashMultimap.create(); groupAliases = MultimapBuilder.hashKeys().hashSetValues().build();
} }
private static Multimap<ObjectId, PatchSet.Id> transformRefs( private static Multimap<ObjectId, PatchSet.Id> transformRefs(

View File

@@ -21,7 +21,6 @@ import static java.util.Comparator.comparing;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
@@ -708,7 +707,7 @@ public class MergeOp implements AutoCloseable {
} }
} }
Multimap<ObjectId, PatchSet.Id> revisions = Multimap<ObjectId, PatchSet.Id> revisions =
HashMultimap.create(cds.size(), 1); MultimapBuilder.hashKeys(cds.size()).hashSetValues(1).build();
for (Map.Entry<String, Ref> e : or.repo.getRefDatabase().exactRef( for (Map.Entry<String, Ref> e : or.repo.getRefDatabase().exactRef(
refNames.toArray(new String[refNames.size()])).entrySet()) { refNames.toArray(new String[refNames.size()])).entrySet()) {
revisions.put( revisions.put(

View File

@@ -35,10 +35,8 @@ import static org.eclipse.jgit.transport.ReceiveCommand.Result.REJECTED_OTHER_RE
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.BiMap; import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap; import com.google.common.collect.HashBiMap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
@@ -47,6 +45,7 @@ import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.collect.SortedSetMultimap; import com.google.common.collect.SortedSetMultimap;
@@ -1327,7 +1326,7 @@ public class ReceiveCommits {
Multimap<RecipientType, Account.Id> getAccountsToNotify() { Multimap<RecipientType, Account.Id> getAccountsToNotify() {
Multimap<RecipientType, Account.Id> accountsToNotify = Multimap<RecipientType, Account.Id> accountsToNotify =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
accountsToNotify.putAll(RecipientType.TO, tos); accountsToNotify.putAll(RecipientType.TO, tos);
accountsToNotify.putAll(RecipientType.CC, ccs); accountsToNotify.putAll(RecipientType.CC, ccs);
accountsToNotify.putAll(RecipientType.BCC, bccs); accountsToNotify.putAll(RecipientType.BCC, bccs);
@@ -2527,10 +2526,11 @@ public class ReceiveCommits {
private void initChangeRefMaps() { private void initChangeRefMaps() {
if (refsByChange == null) { if (refsByChange == null) {
int estRefsPerChange = 4; int estRefsPerChange = 4;
refsById = HashMultimap.create(); refsById = MultimapBuilder.hashKeys().hashSetValues().build();
refsByChange = ArrayListMultimap.create( refsByChange =
allRefs.size() / estRefsPerChange, MultimapBuilder.hashKeys(allRefs.size() / estRefsPerChange)
estRefsPerChange); .arrayListValues(estRefsPerChange)
.build();
for (Ref ref : allRefs.values()) { for (Ref ref : allRefs.values()) {
ObjectId obj = ref.getObjectId(); ObjectId obj = ref.getObjectId();
if (obj != null) { if (obj != null) {

View File

@@ -14,9 +14,9 @@
package com.google.gerrit.server.git; package com.google.gerrit.server.git;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.gerrit.common.data.SubscribeSection; import com.google.gerrit.common.data.SubscribeSection;
import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestApiException;
@@ -139,11 +139,11 @@ public class SubmoduleOp {
"enableSuperProjectSubscriptions", true); "enableSuperProjectSubscriptions", true);
this.orm = orm; this.orm = orm;
this.updatedBranches = updatedBranches; this.updatedBranches = updatedBranches;
this.targets = HashMultimap.create(); this.targets = MultimapBuilder.hashKeys().hashSetValues().build();
this.affectedBranches = new HashSet<>(); this.affectedBranches = new HashSet<>();
this.branchTips = new HashMap<>(); this.branchTips = new HashMap<>();
this.branchGitModules = new HashMap<>(); this.branchGitModules = new HashMap<>();
this.branchesByProject = HashMultimap.create(); this.branchesByProject = MultimapBuilder.hashKeys().hashSetValues().build();
this.sortedBranches = calculateSubscriptionMap(); this.sortedBranches = calculateSubscriptionMap();
} }

View File

@@ -18,11 +18,11 @@ import static com.google.gerrit.server.git.QueueProvider.QueueType.BATCH;
import static org.eclipse.jgit.lib.RefDatabase.ALL; import static org.eclipse.jgit.lib.RefDatabase.ALL;
import com.google.common.base.Stopwatch; import com.google.common.base.Stopwatch;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ComparisonChain; import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.util.concurrent.AsyncFunction; import com.google.common.util.concurrent.AsyncFunction;
import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Futures;
@@ -216,7 +216,8 @@ public class AllChangesIndexer
return new Callable<Void>() { return new Callable<Void>() {
@Override @Override
public Void call() throws Exception { public Void call() throws Exception {
Multimap<ObjectId, ChangeData> byId = ArrayListMultimap.create(); Multimap<ObjectId, ChangeData> byId =
MultimapBuilder.hashKeys().arrayListValues().build();
// TODO(dborowitz): Opening all repositories in a live server may be // TODO(dborowitz): Opening all repositories in a live server may be
// wasteful; see if we can determine which ones it is safe to close // wasteful; see if we can determine which ones it is safe to close
// with RepositoryCache.close(repo). // with RepositoryCache.close(repo).

View File

@@ -22,11 +22,10 @@ import static java.util.stream.Collectors.joining;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
@@ -155,7 +154,8 @@ public class StalenessChecker {
public static SetMultimap<Project.NameKey, RefState> parseStates( public static SetMultimap<Project.NameKey, RefState> parseStates(
Iterable<byte[]> states) { Iterable<byte[]> states) {
RefState.check(states != null, null); RefState.check(states != null, null);
SetMultimap<Project.NameKey, RefState> result = HashMultimap.create(); SetMultimap<Project.NameKey, RefState> result =
MultimapBuilder.hashKeys().hashSetValues().build();
for (byte[] b : states) { for (byte[] b : states) {
RefState.check(b != null, null); RefState.check(b != null, null);
String s = new String(b, UTF_8); String s = new String(b, UTF_8);
@@ -181,7 +181,7 @@ public class StalenessChecker {
Iterable<byte[]> patterns) { Iterable<byte[]> patterns) {
RefStatePattern.check(patterns != null, null); RefStatePattern.check(patterns != null, null);
ListMultimap<Project.NameKey, RefStatePattern> result = ListMultimap<Project.NameKey, RefStatePattern> result =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (byte[] b : patterns) { for (byte[] b : patterns) {
RefStatePattern.check(b != null, null); RefStatePattern.check(b != null, null);
String s = new String(b, UTF_8); String s = new String(b, UTF_8);

View File

@@ -22,7 +22,6 @@ import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
import static java.util.Comparator.comparing; import static java.util.Comparator.comparing;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
@@ -31,6 +30,7 @@ import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Multimaps; import com.google.common.collect.Multimaps;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
@@ -253,7 +253,8 @@ public class ChangeNotes extends AbstractChangeNotes<ChangeNotes> {
public ListMultimap<Project.NameKey, ChangeNotes> create(ReviewDb db, public ListMultimap<Project.NameKey, ChangeNotes> create(ReviewDb db,
Predicate<ChangeNotes> predicate) throws IOException, OrmException { Predicate<ChangeNotes> predicate) throws IOException, OrmException {
ListMultimap<Project.NameKey, ChangeNotes> m = ArrayListMultimap.create(); ListMultimap<Project.NameKey, ChangeNotes> m =
MultimapBuilder.hashKeys().arrayListValues().build();
if (args.migration.readChanges()) { if (args.migration.readChanges()) {
for (Project.NameKey project : projectCache.all()) { for (Project.NameKey project : projectCache.all()) {
try (Repository repo = args.repoManager.openRepository(project)) { try (Repository repo = args.repoManager.openRepository(project)) {

View File

@@ -16,8 +16,8 @@ package com.google.gerrit.server.notedb;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.server.git.InMemoryInserter; import com.google.gerrit.server.git.InMemoryInserter;
import com.google.gerrit.server.git.InsertedObject; import com.google.gerrit.server.git.InsertedObject;
@@ -118,7 +118,8 @@ public class ChangeNotesCommit extends RevCommit {
public List<String> getFooterLineValues(FooterKey key) { public List<String> getFooterLineValues(FooterKey key) {
if (footerLines == null) { if (footerLines == null) {
List<FooterLine> src = getFooterLines(); List<FooterLine> src = getFooterLines();
footerLines = ArrayListMultimap.create(src.size(), 1); footerLines =
MultimapBuilder.hashKeys(src.size()).arrayListValues(1).build();
for (FooterLine fl : src) { for (FooterLine fl : src) {
footerLines.put(fl.getKey().toLowerCase(), fl.getValue()); footerLines.put(fl.getKey().toLowerCase(), fl.getValue());
} }

View File

@@ -37,13 +37,13 @@ import static java.util.stream.Collectors.joining;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.base.Enums; import com.google.common.base.Enums;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashBasedTable; import com.google.common.collect.HashBasedTable;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.collect.Table; import com.google.common.collect.Table;
import com.google.common.collect.Tables; import com.google.common.collect.Tables;
@@ -175,7 +175,7 @@ class ChangeNotesParser {
submitRecords = Lists.newArrayListWithExpectedSize(1); submitRecords = Lists.newArrayListWithExpectedSize(1);
allChangeMessages = new ArrayList<>(); allChangeMessages = new ArrayList<>();
changeMessagesByPatchSet = LinkedListMultimap.create(); changeMessagesByPatchSet = LinkedListMultimap.create();
comments = ArrayListMultimap.create(); comments = MultimapBuilder.hashKeys().arrayListValues().build();
patchSets = Maps.newTreeMap(comparing(PatchSet.Id::get)); patchSets = Maps.newTreeMap(comparing(PatchSet.Id::get));
deletedPatchSets = new HashSet<>(); deletedPatchSets = new HashSet<>();
patchSetStates = new HashMap<>(); patchSetStates = new HashMap<>();
@@ -240,7 +240,8 @@ class ChangeNotesParser {
} }
private Multimap<PatchSet.Id, PatchSetApproval> buildApprovals() { private Multimap<PatchSet.Id, PatchSetApproval> buildApprovals() {
Multimap<PatchSet.Id, PatchSetApproval> result = ArrayListMultimap.create(); Multimap<PatchSet.Id, PatchSetApproval> result =
MultimapBuilder.hashKeys().arrayListValues().build();
for (PatchSetApproval a : approvals.values()) { for (PatchSetApproval a : approvals.values()) {
if (!patchSets.containsKey(a.getPatchSetId())) { if (!patchSets.containsKey(a.getPatchSetId())) {
continue; // Patch set deleted or missing. continue; // Patch set deleted or missing.

View File

@@ -18,9 +18,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES; import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.metrics.Timer1; import com.google.gerrit.metrics.Timer1;
import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
@@ -146,7 +146,8 @@ public class DraftCommentNotes extends AbstractChangeNotes<DraftCommentNotes> {
revisionNoteMap = RevisionNoteMap.parse( revisionNoteMap = RevisionNoteMap.parse(
args.noteUtil, getChangeId(), reader, NoteMap.read(reader, tipCommit), args.noteUtil, getChangeId(), reader, NoteMap.read(reader, tipCommit),
PatchLineComment.Status.DRAFT); PatchLineComment.Status.DRAFT);
Multimap<RevId, Comment> cs = ArrayListMultimap.create(); Multimap<RevId, Comment> cs =
MultimapBuilder.hashKeys().arrayListValues().build();
for (ChangeRevisionNote rn : revisionNoteMap.revisionNotes.values()) { for (ChangeRevisionNote rn : revisionNoteMap.revisionNotes.values()) {
for (Comment c : rn.getComments()) { for (Comment c : rn.getComments()) {
cs.put(new RevId(c.revId), c); cs.put(new RevId(c.revId), c);

View File

@@ -22,10 +22,10 @@ import static com.google.gerrit.reviewdb.client.RefNames.REFS_DRAFT_COMMENTS;
import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES; import static com.google.gerrit.server.notedb.NoteDbTable.CHANGES;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashBasedTable; import com.google.common.collect.HashBasedTable;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Table; import com.google.common.collect.Table;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.metrics.Timer1; import com.google.gerrit.metrics.Timer1;
@@ -201,9 +201,9 @@ public class NoteDbUpdateManager implements AutoCloseable {
this.allUsersName = allUsersName; this.allUsersName = allUsersName;
this.metrics = metrics; this.metrics = metrics;
this.projectName = projectName; this.projectName = projectName;
changeUpdates = ArrayListMultimap.create(); changeUpdates = MultimapBuilder.hashKeys().arrayListValues().build();
draftUpdates = ArrayListMultimap.create(); draftUpdates = MultimapBuilder.hashKeys().arrayListValues().build();
robotCommentUpdates = ArrayListMultimap.create(); robotCommentUpdates = MultimapBuilder.hashKeys().arrayListValues().build();
toDelete = new HashSet<>(); toDelete = new HashSet<>();
} }

View File

@@ -18,9 +18,9 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.gerrit.server.CommentsUtil.COMMENT_ORDER; import static com.google.gerrit.server.CommentsUtil.COMMENT_ORDER;
import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.reviewdb.client.Comment; import com.google.gerrit.reviewdb.client.Comment;
import com.google.gerrit.reviewdb.client.RevId; import com.google.gerrit.reviewdb.client.RevId;
@@ -113,7 +113,8 @@ class RevisionNoteBuilder {
} }
private Multimap<Integer, Comment> buildCommentMap() { private Multimap<Integer, Comment> buildCommentMap() {
Multimap<Integer, Comment> all = ArrayListMultimap.create(); Multimap<Integer, Comment> all =
MultimapBuilder.hashKeys().arrayListValues().build();
for (Comment c : baseComments) { for (Comment c : baseComments) {
if (!delete.contains(c.key) && !put.containsKey(c.key)) { if (!delete.contains(c.key) && !put.containsKey(c.key)) {

View File

@@ -14,9 +14,9 @@
package com.google.gerrit.server.notedb; package com.google.gerrit.server.notedb;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
@@ -95,7 +95,8 @@ public class RobotCommentNotes extends AbstractChangeNotes<RobotCommentNotes> {
ObjectReader reader = handle.walk().getObjectReader(); ObjectReader reader = handle.walk().getObjectReader();
revisionNoteMap = RevisionNoteMap.parseRobotComments(args.noteUtil, reader, revisionNoteMap = RevisionNoteMap.parseRobotComments(args.noteUtil, reader,
NoteMap.read(reader, tipCommit)); NoteMap.read(reader, tipCommit));
Multimap<RevId, RobotComment> cs = ArrayListMultimap.create(); Multimap<RevId, RobotComment> cs =
MultimapBuilder.hashKeys().arrayListValues().build();
for (RobotCommentsRevisionNote rn : for (RobotCommentsRevisionNote rn :
revisionNoteMap.revisionNotes.values()) { revisionNoteMap.revisionNotes.values()) {
for (RobotComment c : rn.getComments()) { for (RobotComment c : rn.getComments()) {

View File

@@ -23,11 +23,11 @@ import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.common.collect.Table; import com.google.common.collect.Table;
@@ -280,7 +280,7 @@ public class ChangeRebuilderImpl extends ChangeRebuilder {
// on author and timestamp. // on author and timestamp.
List<Event> events = new ArrayList<>(); List<Event> events = new ArrayList<>();
Multimap<Account.Id, DraftCommentEvent> draftCommentEvents = Multimap<Account.Id, DraftCommentEvent> draftCommentEvents =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
events.addAll(getHashtagsEvents(change, manager)); events.addAll(getHashtagsEvents(change, manager));

View File

@@ -17,9 +17,8 @@ package com.google.gerrit.server.notedb.rebuild;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import java.util.Collections; import java.util.Collections;
@@ -67,8 +66,8 @@ class EventSorter {
PriorityQueue<Event> todo = new PriorityQueue<>(out); PriorityQueue<Event> todo = new PriorityQueue<>(out);
// Populate waiting map after initial sort to preserve natural order. // Populate waiting map after initial sort to preserve natural order.
waiting = ArrayListMultimap.create(); waiting = MultimapBuilder.hashKeys().arrayListValues().build();
deps = HashMultimap.create(); deps = MultimapBuilder.hashKeys().hashSetValues().build();
for (Event e : todo) { for (Event e : todo) {
for (Event d : e.deps) { for (Event d : e.deps) {
deps.put(e, d); deps.put(e, d);

View File

@@ -18,11 +18,11 @@ import static com.google.common.base.MoreObjects.firstNonNull;
import static com.google.common.collect.Iterables.transform; import static com.google.common.collect.Iterables.transform;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import org.eclipse.jgit.util.IO; import org.eclipse.jgit.util.IO;
import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.AnnotationVisitor;
@@ -67,7 +67,8 @@ public class JarScanner implements PluginContentScanner {
String pluginName, Iterable<Class<? extends Annotation>> annotations) String pluginName, Iterable<Class<? extends Annotation>> annotations)
throws InvalidPluginException { throws InvalidPluginException {
Set<String> descriptors = new HashSet<>(); Set<String> descriptors = new HashSet<>();
Multimap<String, JarScanner.ClassData> rawMap = ArrayListMultimap.create(); Multimap<String, JarScanner.ClassData> rawMap =
MultimapBuilder.hashKeys().arrayListValues().build();
Map<Class<? extends Annotation>, String> classObjToClassDescr = Map<Class<? extends Annotation>, String> classObjToClassDescr =
new HashMap<>(); new HashMap<>();

View File

@@ -18,10 +18,10 @@ import static com.google.common.base.MoreObjects.firstNonNull;
import static com.google.gerrit.server.project.RefPattern.isRE; import static com.google.gerrit.server.project.RefPattern.isRE;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.common.Nullable; import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.AccessSection;
import com.google.gerrit.common.data.Permission; import com.google.gerrit.common.data.Permission;
@@ -119,7 +119,7 @@ public class PermissionCollection {
HashMap<String, List<PermissionRule>> overridden = new HashMap<>(); HashMap<String, List<PermissionRule>> overridden = new HashMap<>();
Map<PermissionRule, ProjectRef> ruleProps = Maps.newIdentityHashMap(); Map<PermissionRule, ProjectRef> ruleProps = Maps.newIdentityHashMap();
Multimap<Project.NameKey, String> exclusivePermissionsByProject = Multimap<Project.NameKey, String> exclusivePermissionsByProject =
ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
for (AccessSection section : sections) { for (AccessSection section : sections) {
Project.NameKey project = sectionToProject.get(section); Project.NameKey project = sectionToProject.get(section);
for (Permission permission : section.getPermissions()) { for (Permission permission : section.getPermissions()) {

View File

@@ -15,10 +15,9 @@
package com.google.gerrit.server.schema; package com.google.gerrit.server.schema;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.SetMultimap; import com.google.common.collect.SetMultimap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
@@ -102,8 +101,10 @@ public class Schema_108 extends SchemaVersion {
} }
} }
Multimap<ObjectId, Ref> changeRefsBySha = ArrayListMultimap.create(); Multimap<ObjectId, Ref> changeRefsBySha =
Multimap<ObjectId, PatchSet.Id> patchSetsBySha = ArrayListMultimap.create(); MultimapBuilder.hashKeys().arrayListValues().build();
Multimap<ObjectId, PatchSet.Id> patchSetsBySha =
MultimapBuilder.hashKeys().arrayListValues().build();
for (Ref ref : refdb.getRefs(RefNames.REFS_CHANGES).values()) { for (Ref ref : refdb.getRefs(RefNames.REFS_CHANGES).values()) {
ObjectId id = ref.getObjectId(); ObjectId id = ref.getObjectId();
if (ref.getObjectId() == null) { if (ref.getObjectId() == null) {
@@ -154,7 +155,7 @@ public class Schema_108 extends SchemaVersion {
SortedSet<NameKey> projects = repoManager.list(); SortedSet<NameKey> projects = repoManager.list();
SortedSet<NameKey> nonExistentProjects = Sets.newTreeSet(); SortedSet<NameKey> nonExistentProjects = Sets.newTreeSet();
SetMultimap<Project.NameKey, Change.Id> openByProject = SetMultimap<Project.NameKey, Change.Id> openByProject =
HashMultimap.create(); MultimapBuilder.hashKeys().hashSetValues().build();
for (Change c : db.changes().all()) { for (Change c : db.changes().all()) {
Status status = c.getStatus(); Status status = c.getStatus();
if (status != null && status.isClosed()) { if (status != null && status.isClosed()) {

View File

@@ -14,8 +14,8 @@
package com.google.gerrit.server.schema; package com.google.gerrit.server.schema;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.reviewdb.client.RefNames;
@@ -57,7 +57,8 @@ public class Schema_123 extends SchemaVersion {
@Override @Override
protected void migrateData(ReviewDb db, UpdateUI ui) protected void migrateData(ReviewDb db, UpdateUI ui)
throws OrmException, SQLException { throws OrmException, SQLException {
Multimap<Account.Id, Change.Id> imports = ArrayListMultimap.create(); Multimap<Account.Id, Change.Id> imports =
MultimapBuilder.hashKeys().arrayListValues().build();
try (Statement stmt = ((JdbcSchema) db).getConnection().createStatement(); try (Statement stmt = ((JdbcSchema) db).getConnection().createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery(
"SELECT " "SELECT "

View File

@@ -17,8 +17,8 @@ package com.google.gerrit.server.schema;
import static java.util.Comparator.comparing; import static java.util.Comparator.comparing;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.client.AccountSshKey;
@@ -71,7 +71,8 @@ public class Schema_124 extends SchemaVersion {
@Override @Override
protected void migrateData(ReviewDb db, UpdateUI ui) protected void migrateData(ReviewDb db, UpdateUI ui)
throws OrmException, SQLException { throws OrmException, SQLException {
Multimap<Account.Id, AccountSshKey> imports = ArrayListMultimap.create(); Multimap<Account.Id, AccountSshKey> imports =
MultimapBuilder.hashKeys().arrayListValues().build();
try (Statement stmt = ((JdbcSchema) db).getConnection().createStatement(); try (Statement stmt = ((JdbcSchema) db).getConnection().createStatement();
ResultSet rs = stmt.executeQuery( ResultSet rs = stmt.executeQuery(
"SELECT " "SELECT "