diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetGroups.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetGroups.java index 2a43841248..d2706566f7 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GetGroups.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GetGroups.java @@ -16,7 +16,6 @@ package com.google.gerrit.server.account; import com.google.common.collect.Lists; import com.google.gerrit.common.errors.NoSuchGroupException; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.reviewdb.client.Account; @@ -41,7 +40,7 @@ public class GetGroups implements RestReadView { @Override public List apply(AccountResource resource) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { IdentifiedUser user = resource.getUser(); Account.Id userId = user.getAccountId(); List groups = Lists.newArrayList(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java index af336c5f57..d78c7df3c1 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/CreateGroup.java @@ -24,7 +24,6 @@ import com.google.gerrit.common.errors.PermissionDeniedException; import com.google.gerrit.extensions.annotations.RequiresCapability; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestModifyView; import com.google.gerrit.extensions.restapi.TopLevelResource; @@ -80,7 +79,7 @@ class CreateGroup implements RestModifyView { @Override public GroupInfo apply(TopLevelResource resource, Input input) throws ResourceNotFoundException, AuthException, BadRequestException, - NameAlreadyUsedException, MethodNotAllowedException, OrmException { + NameAlreadyUsedException, OrmException { if (input == null) { input = new Input(); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetDetail.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetDetail.java index 9d17b62439..adb04cdb77 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetDetail.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetDetail.java @@ -15,7 +15,6 @@ package com.google.gerrit.server.group; import com.google.gerrit.common.groups.ListGroupsOption; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.group.GroupJson.GroupInfo; @@ -33,7 +32,7 @@ public class GetDetail implements RestReadView { @Override public GroupInfo apply(GroupResource rsrc) throws ResourceNotFoundException, - MethodNotAllowedException, OrmException { + OrmException { return json.format(rsrc); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetGroup.java index 7bc5ee0005..32cf9be438 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetGroup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetGroup.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.group; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.group.GroupJson.GroupInfo; @@ -31,7 +30,7 @@ class GetGroup implements RestReadView { @Override public GroupInfo apply(GroupResource resource) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { return json.format(resource.getGroup()); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetIncludedGroup.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetIncludedGroup.java index d6ae1c5a3b..7e63816f09 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetIncludedGroup.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetIncludedGroup.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.group; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.group.GroupJson.GroupInfo; @@ -31,7 +30,7 @@ public class GetIncludedGroup implements RestReadView { @Override public GroupInfo apply(IncludedGroupResource rsrc) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { return json.format(rsrc.getMemberDescription()); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetOwner.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetOwner.java index 169fbdd1b1..797544d0ee 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetOwner.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetOwner.java @@ -15,7 +15,6 @@ package com.google.gerrit.server.group; import com.google.gerrit.common.errors.NoSuchGroupException; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.reviewdb.client.AccountGroup; @@ -37,7 +36,7 @@ public class GetOwner implements RestReadView { @Override public GroupInfo apply(GroupResource resource) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { AccountGroup group = resource.toAccountGroup(); if (group == null) { throw new ResourceNotFoundException(); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupJson.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupJson.java index dcf36674ab..cc57b3c684 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupJson.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupJson.java @@ -65,15 +65,15 @@ public class GroupJson { return this; } - public GroupInfo format(GroupResource rsrc) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + public GroupInfo format(GroupResource rsrc) throws ResourceNotFoundException, + OrmException { GroupInfo info = init(rsrc.getGroup()); initMembersAndIncludes(rsrc, info); return info; } public GroupInfo format(GroupDescription.Basic group) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { GroupInfo info = init(group); if (options.contains(MEMBERS) || options.contains(INCLUDES)) { GroupResource rsrc = @@ -107,15 +107,25 @@ public class GroupJson { } private GroupInfo initMembersAndIncludes(GroupResource rsrc, GroupInfo info) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { - if (options.contains(MEMBERS)) { - info.members = listMembers.get().apply(rsrc); + throws ResourceNotFoundException, OrmException { + if (rsrc.toAccountGroup() == null) { + return info; } + try { + if (options.contains(MEMBERS)) { + info.members = listMembers.get().apply(rsrc); + } - if (options.contains(INCLUDES)) { - info.includes = listIncludes.get().apply(rsrc); + if (options.contains(INCLUDES)) { + info.includes = listIncludes.get().apply(rsrc); + } + return info; + } catch (MethodNotAllowedException e) { + // should never happen, this exception is only thrown if we would try to + // list members/includes of an external group, but in case of an external + // group we return before + throw new IllegalStateException(e); } - return info; } public static class GroupInfo { diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/ListGroups.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/ListGroups.java index 97614ef24a..88a7ca8df8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/ListGroups.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/ListGroups.java @@ -25,7 +25,6 @@ import com.google.gerrit.common.errors.NoSuchGroupException; import com.google.gerrit.common.groups.ListGroupsOption; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.MethodNotAllowedException; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestReadView; @@ -147,8 +146,7 @@ public class ListGroups implements RestReadView { new TypeToken>() {}.getType()); } - public List get() throws ResourceNotFoundException, - MethodNotAllowedException, OrmException { + public List get() throws ResourceNotFoundException, OrmException { List groupInfos; if (user != null) { if (owned) { @@ -189,7 +187,7 @@ public class ListGroups implements RestReadView { } private List getGroupsOwnedBy(IdentifiedUser user) - throws ResourceNotFoundException, MethodNotAllowedException, OrmException { + throws ResourceNotFoundException, OrmException { List groups = Lists.newArrayList(); for (AccountGroup g : filterGroups(groupCache.all())) { GroupControl ctl = groupControlFactory.controlFor(g);