summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Ostrovsky <david@ostrovsky.org>2022-02-15 06:58:41 +0100
committerDavid Ostrovsky <david@ostrovsky.org>2022-02-15 07:00:15 +0100
commit1c7236d67664dd4cf86ab424dd77c71881015beb (patch)
tree0d12f497fa3bcb9f63f916215947723a8d08219f
parent8584b3df3bfa5690c86250f225ad73f555fe468a (diff)
parentd9aa1bc8b5f943e3749c297f50998062f85c5380 (diff)
Merge branch 'stable-3.4' into stable-3.5
* stable-3.4: Fix gerrit ls-members --recursive Fix gerrit ls-groups flag in documentation Test that endless loop on Prolog type error is fixed PrologRuleEvaluator: Fix endless loop on type error Bazel: Use Java 8 per default to guarantee source level compatibility Release-Notes: skip Change-Id: Icedae403f14deac962137eb7645b1229a81d798b
-rw-r--r--Documentation/cmd-ls-groups.txt6
-rw-r--r--Documentation/dev-bazel.txt7
-rw-r--r--java/com/google/gerrit/server/restapi/group/ListMembers.java19
-rw-r--r--java/com/google/gerrit/server/rules/PrologRuleEvaluator.java1
-rw-r--r--java/com/google/gerrit/sshd/commands/ListMembersCommand.java2
-rw-r--r--javatests/com/google/gerrit/acceptance/server/rules/RulesIT.java6
6 files changed, 29 insertions, 12 deletions
diff --git a/Documentation/cmd-ls-groups.txt b/Documentation/cmd-ls-groups.txt
index 8a4845c263..0a06c28abe 100644
--- a/Documentation/cmd-ls-groups.txt
+++ b/Documentation/cmd-ls-groups.txt
@@ -11,7 +11,7 @@ _ssh_ -p <port> <host> _gerrit ls-groups_
[--user <NAME> | -u <NAME>]
[--owned]
[--visible-to-all]
- [-q <GROUP>]
+ [-g <GROUP>]
[--verbose | -v]
--
@@ -67,8 +67,8 @@ This option can't be used together with the '--project' option.
(groups that are explicitly marked as visible to all registered
users).
--q::
- Group that should be inspected. The `-q` option can be specified
+-g::
+ Group that should be inspected. The `-g` option can be specified
multiple times to define several groups to be inspected. If
specified the listed groups will only contain groups that were
specified to be inspected. This is e.g. useful in combination with
diff --git a/Documentation/dev-bazel.txt b/Documentation/dev-bazel.txt
index 0e4b4ac520..e6a118e271 100644
--- a/Documentation/dev-bazel.txt
+++ b/Documentation/dev-bazel.txt
@@ -55,17 +55,16 @@ Java 8 is a legacy Java release and support for Java 8 will be discontinued
in future gerrit releases. To build Gerrit with Java 8 language level, run:
```
- $ bazel build --java_toolchain //tools:error_prone_warnings_toolchain :release
+ $ bazel build :release
```
[[java-11]]
==== Java 11 support
-Java language level 11 is the default. To build Gerrit with Java 11 language
-level, run:
+To build Gerrit with Java 11 language level, run:
```
- $ bazel build :release
+ $ bazel build --java_toolchain=//tools:error_prone_warnings_toolchain_java11 :release
```
[[java-13]]
diff --git a/java/com/google/gerrit/server/restapi/group/ListMembers.java b/java/com/google/gerrit/server/restapi/group/ListMembers.java
index 218eb98056..22870c13d8 100644
--- a/java/com/google/gerrit/server/restapi/group/ListMembers.java
+++ b/java/com/google/gerrit/server/restapi/group/ListMembers.java
@@ -80,13 +80,18 @@ public class ListMembers implements RestReadView<GroupResource> {
throws PermissionBackendException {
Optional<InternalGroup> group = groupCache.get(groupUuid);
if (group.isPresent()) {
- InternalGroupDescription internalGroup = new InternalGroupDescription(group.get());
- GroupControl groupControl = groupControlFactory.controlFor(internalGroup);
- return getTransitiveMembers(internalGroup, groupControl);
+ return getTransitiveMembers(group.get());
}
return ImmutableList.of();
}
+ public List<AccountInfo> getTransitiveMembers(InternalGroup group)
+ throws PermissionBackendException {
+ InternalGroupDescription internalGroup = new InternalGroupDescription(group);
+ GroupControl groupControl = groupControlFactory.controlFor(internalGroup);
+ return getTransitiveMembers(internalGroup, groupControl);
+ }
+
private List<AccountInfo> getTransitiveMembers(
GroupDescription.Internal group, GroupControl groupControl)
throws PermissionBackendException {
@@ -110,6 +115,14 @@ public class ListMembers implements RestReadView<GroupResource> {
return toAccountInfos(directMembers);
}
+ protected List<AccountInfo> getMembers(InternalGroup group) throws PermissionBackendException {
+ if (recursive) {
+ return getTransitiveMembers(group);
+ } else {
+ return getDirectMembers(group);
+ }
+ }
+
private List<AccountInfo> toAccountInfos(Set<Account.Id> members)
throws PermissionBackendException {
AccountLoader accountLoader = accountLoaderFactory.create(true);
diff --git a/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java b/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java
index 179a3d0568..77b64e84f4 100644
--- a/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java
+++ b/java/com/google/gerrit/server/rules/PrologRuleEvaluator.java
@@ -401,7 +401,6 @@ public class PrologRuleEvaluator {
private SubmitTypeRecord typeError(String err, Exception e) {
if (opts.logErrors()) {
logger.atSevere().withCause(e).log(err);
- return typeError(DEFAULT_MSG);
}
return SubmitTypeRecord.error(err);
}
diff --git a/java/com/google/gerrit/sshd/commands/ListMembersCommand.java b/java/com/google/gerrit/sshd/commands/ListMembersCommand.java
index 45c6a35078..fd186563e1 100644
--- a/java/com/google/gerrit/sshd/commands/ListMembersCommand.java
+++ b/java/com/google/gerrit/sshd/commands/ListMembersCommand.java
@@ -80,7 +80,7 @@ public class ListMembersCommand extends SshCommand {
return;
}
- List<AccountInfo> members = getDirectMembers(group.get());
+ List<AccountInfo> members = getMembers(group.get());
ColumnFormatter formatter = new ColumnFormatter(writer, '\t');
formatter.addColumn("id");
formatter.addColumn("username");
diff --git a/javatests/com/google/gerrit/acceptance/server/rules/RulesIT.java b/javatests/com/google/gerrit/acceptance/server/rules/RulesIT.java
index 0585f74b92..6cb13c5863 100644
--- a/javatests/com/google/gerrit/acceptance/server/rules/RulesIT.java
+++ b/javatests/com/google/gerrit/acceptance/server/rules/RulesIT.java
@@ -164,6 +164,12 @@ public class RulesIT extends AbstractDaemonTest {
assertThat(statusForRuleRenamedFile()).isEqualTo(SubmitRecord.Status.OK);
}
+ @Test
+ public void typeError() throws Exception {
+ modifySubmitRules("user(1000000)."); // the trailing '.' triggers a type error
+ assertThat(statusForRuleAddFile("foo")).isEqualTo(SubmitRecord.Status.RULE_ERROR);
+ }
+
private SubmitRecord.Status statusForRule() throws Exception {
String oldHead = projectOperations.project(project).getHead("master").name();
PushOneCommit.Result result =