Merge "Fix build failure with Bazel 0.5rc3."
diff --git a/WORKSPACE b/WORKSPACE
index 3b46d22..f136155 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -109,18 +109,18 @@
sha1 = "5d9e2e895e3111622720157d0aa540066d5fce3a",
)
-GWT_VERS = "2.8.0"
+GWT_VERS = "2.8.1"
maven_jar(
name = "user",
artifact = "com.google.gwt:gwt-user:" + GWT_VERS,
- sha1 = "518579870499e15531f454f35dca0772d7fa31f7",
+ sha1 = "9a13fbee70848f1f1cddd3ae33ad180af3392d9e",
)
maven_jar(
name = "dev",
artifact = "com.google.gwt:gwt-dev:" + GWT_VERS,
- sha1 = "f160a61272c5ebe805cd2d3d3256ed3ecf14893f",
+ sha1 = "c7e88c07e9cda90cc623b4451d0d9713ae03aa53",
)
maven_jar(
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
index 437af65..ca80131 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/change/ChangeIndexRewriter.java
@@ -229,8 +229,8 @@
}
IndexPredicate<ChangeData> p = (IndexPredicate<ChangeData>) in;
- FieldDef def = p.getField();
- Schema schema = index.getSchema();
+ FieldDef<ChangeData, ?> def = p.getField();
+ Schema<ChangeData> schema = index.getSchema();
return schema.hasField(def);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/receive/MailProcessor.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/receive/MailProcessor.java
index 51e5739..862da9f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/receive/MailProcessor.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/receive/MailProcessor.java
@@ -32,7 +32,6 @@
import com.google.gerrit.reviewdb.client.PatchLineComment.Status;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.ApprovalsUtil;
import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.CommentsUtil;
@@ -80,7 +79,6 @@
private final PatchListCache patchListCache;
private final PatchSetUtil psUtil;
private final Provider<InternalChangeQuery> queryProvider;
- private final Provider<ReviewDb> reviewDb;
private final DynamicMap<MailFilter> mailFilters;
private final EmailReviewComments.Factory outgoingMailFactory;
private final CommentAdded commentAdded;
@@ -98,7 +96,6 @@
PatchListCache patchListCache,
PatchSetUtil psUtil,
Provider<InternalChangeQuery> queryProvider,
- Provider<ReviewDb> reviewDb,
DynamicMap<MailFilter> mailFilters,
EmailReviewComments.Factory outgoingMailFactory,
ApprovalsUtil approvalsUtil,
@@ -113,7 +110,6 @@
this.patchListCache = patchListCache;
this.psUtil = psUtil;
this.queryProvider = queryProvider;
- this.reviewDb = reviewDb;
this.mailFilters = mailFilters;
this.outgoingMailFactory = outgoingMailFactory;
this.commentAdded = commentAdded;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
index 099a3d1..f360778 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
@@ -118,6 +118,8 @@
private static final Pattern DEF_CHANGE =
Pattern.compile("^(?:[1-9][0-9]*|(?:[^~]+~[^~]+~)?[iI][0-9a-f]{4,}.*)$");
+ private static final int MAX_ACCOUNTS_PER_DEFAULT_FIELD = 10;
+
// NOTE: As new search operations are added, please keep the
// SearchSuggestOracle up to date.
@@ -939,6 +941,15 @@
return Predicate.or(p);
}
+ private Predicate<ChangeData> ownerDefaultField(String who)
+ throws QueryParseException, OrmException {
+ Set<Account.Id> accounts = parseAccount(who);
+ if (accounts.size() > MAX_ACCOUNTS_PER_DEFAULT_FIELD) {
+ return Predicate.any();
+ }
+ return owner(accounts);
+ }
+
@Operator
public Predicate<ChangeData> assignee(String who) throws QueryParseException, OrmException {
return assignee(parseAccount(who));
@@ -968,17 +979,26 @@
@Operator
public Predicate<ChangeData> reviewer(String who) throws QueryParseException, OrmException {
+ return reviewer(who, false);
+ }
+
+ private Predicate<ChangeData> reviewerDefaultField(String who) throws QueryParseException, OrmException {
+ return reviewer(who, true);
+ }
+
+ private Predicate<ChangeData> reviewer(String who, boolean forDefaultField)
+ throws QueryParseException, OrmException {
if (args.getSchema().hasField(ChangeField.WIP)) {
return Predicate.and(
Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)),
- reviewerByState(who, ReviewerStateInternal.REVIEWER));
+ reviewerByState(who, ReviewerStateInternal.REVIEWER, forDefaultField));
}
- return reviewerByState(who, ReviewerStateInternal.REVIEWER);
+ return reviewerByState(who, ReviewerStateInternal.REVIEWER, forDefaultField);
}
@Operator
public Predicate<ChangeData> cc(String who) throws QueryParseException, OrmException {
- return reviewerByState(who, ReviewerStateInternal.CC);
+ return reviewerByState(who, ReviewerStateInternal.CC, false);
}
@Operator
@@ -1137,12 +1157,12 @@
// Adapt the capacity of this list when adding more default predicates.
List<Predicate<ChangeData>> predicates = Lists.newArrayListWithCapacity(11);
try {
- predicates.add(owner(query));
+ predicates.add(ownerDefaultField(query));
} catch (OrmException | QueryParseException e) {
// Skip.
}
try {
- predicates.add(reviewer(query));
+ predicates.add(reviewerDefaultField(query));
} catch (OrmException | QueryParseException e) {
// Skip.
}
@@ -1208,8 +1228,8 @@
return args.getIdentifiedUser().getAccountId();
}
- public Predicate<ChangeData> reviewerByState(String who, ReviewerStateInternal state)
- throws QueryParseException, OrmException {
+ public Predicate<ChangeData> reviewerByState(String who, ReviewerStateInternal state,
+ boolean forDefaultField) throws QueryParseException, OrmException {
Predicate<ChangeData> reviewerByEmailPredicate = null;
if (args.index.getSchema().hasField(ChangeField.REVIEWER_BY_EMAIL)) {
Address address = Address.tryParse(who);
@@ -1220,12 +1240,13 @@
Predicate<ChangeData> reviewerPredicate = null;
try {
- reviewerPredicate =
- Predicate.or(
- parseAccount(who)
- .stream()
- .map(id -> ReviewerPredicate.forState(args, id, state))
- .collect(toList()));
+ Set<Account.Id> accounts = parseAccount(who);
+ if (!forDefaultField || accounts.size() <= MAX_ACCOUNTS_PER_DEFAULT_FIELD) {
+ reviewerPredicate = Predicate.or(
+ accounts.stream()
+ .map(id -> ReviewerPredicate.forState(args, id, state))
+ .collect(toList()));
+ }
} catch (QueryParseException e) {
// Propagate this exception only if we can't use 'who' to query by email
if (reviewerByEmailPredicate == null) {