Merge "ChangeQueryBuilder#label: Reject using 'user' and 'group' args together"
diff --git a/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
index dac0e97..c76a1e1 100644
--- a/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
+++ b/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
@@ -1099,6 +1099,9 @@
assertDisjunctive(lblArgs, ARG_COUNT, ARG_ID_USER);
assertDisjunctive(lblArgs, ARG_COUNT, ARG_ID_GROUP);
+ // Using "user=" or "group=" args is not supported.
+ assertDisjunctive(lblArgs, ARG_ID_USER, ARG_ID_GROUP);
+
for (Map.Entry<String, ValOp> pair : lblArgs.keyValue.entrySet()) {
String key = pair.getKey();
String value = pair.getValue().value();
diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index 19eab46..ab1bc8e 100644
--- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -1554,6 +1554,15 @@
.hasMessageThat()
.isEqualTo("Cannot use the 'count' argument in conjunction with the 'group' argument");
+ // "user" and "group" args cannot be used simultaneously.
+ thrown =
+ assertThrows(
+ BadRequestException.class,
+ () -> assertQuery("label:Code-Review=+1,user=non_uploader,group=gerrit"));
+ assertThat(thrown)
+ .hasMessageThat()
+ .isEqualTo("Cannot use the 'user' argument in conjunction with the 'group' argument");
+
// "non_contributor arg for the label operator is not allowed in change queries
thrown =
assertThrows(