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(