diff options
author | David Ostrovsky <david@ostrovsky.org> | 2022-02-15 06:58:41 +0100 |
---|---|---|
committer | David Ostrovsky <david@ostrovsky.org> | 2022-02-15 07:00:15 +0100 |
commit | 1c7236d67664dd4cf86ab424dd77c71881015beb (patch) | |
tree | 0d12f497fa3bcb9f63f916215947723a8d08219f | |
parent | 8584b3df3bfa5690c86250f225ad73f555fe468a (diff) | |
parent | d9aa1bc8b5f943e3749c297f50998062f85c5380 (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
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 = |