Use ChangeField.WIP only if the index schema has this field
While the online reindexing goes on, Gerrit still uses the old index
schema version which doesn't contain this field.
Change-Id: I43e81295326e8c99b25cb1fb7dc33ad040b94cad
Signed-off-by: Edwin Kempin <ekempin@google.com>
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 22e8d58..099a3d1 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
@@ -572,9 +572,12 @@
}
if ("reviewer".equalsIgnoreCase(value)) {
- return Predicate.and(
- Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)),
- ReviewerPredicate.reviewer(args, self()));
+ if (args.getSchema().hasField(ChangeField.WIP)) {
+ return Predicate.and(
+ Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)),
+ ReviewerPredicate.reviewer(args, self()));
+ }
+ return ReviewerPredicate.reviewer(args, self());
}
if ("cc".equalsIgnoreCase(value)) {
@@ -606,7 +609,10 @@
}
if ("wip".equalsIgnoreCase(value)) {
- return new BooleanPredicate(ChangeField.WIP, args.fillArgs);
+ if (args.getSchema().hasField(ChangeField.WIP)) {
+ return new BooleanPredicate(ChangeField.WIP, args.fillArgs);
+ }
+ throw new QueryParseException("'is:wip' operator is not supported by change index version");
}
try {
@@ -962,9 +968,12 @@
@Operator
public Predicate<ChangeData> reviewer(String who) throws QueryParseException, OrmException {
- return Predicate.and(
- Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)),
- reviewerByState(who, ReviewerStateInternal.REVIEWER));
+ if (args.getSchema().hasField(ChangeField.WIP)) {
+ return Predicate.and(
+ Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)),
+ reviewerByState(who, ReviewerStateInternal.REVIEWER));
+ }
+ return reviewerByState(who, ReviewerStateInternal.REVIEWER);
}
@Operator