diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewerResult.java b/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewerResult.java index 678ec79a7e..a535c17357 100644 --- a/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewerResult.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewerResult.java @@ -56,8 +56,11 @@ public class ReviewerResult { /** The account is not permitted to see the change. */ CHANGE_NOT_VISIBLE, - /** Could not remove this reviewer from the change. */ - COULD_NOT_REMOVE + /** Could not remove this reviewer from the change due to ORMException. */ + COULD_NOT_REMOVE, + + /** Not permitted to remove this reviewer from the change. */ + REMOVE_NOT_PERMITTED } protected Type type; diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java index a20b02ec89..4a5c1ced97 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java @@ -304,7 +304,18 @@ public class ApprovalTable extends Composite { final ChangeDetail r = result.getChange(); display(r.getChange(), r.getMissingApprovals(), r.getApprovals()); } else { - new ErrorDialog(result.getErrors().get(0).toString()).center(); + final ReviewerResult.Error resultError = + result.getErrors().get(0); + String message; + switch (resultError.getType()) { + case REMOVE_NOT_PERMITTED: + message = Util.C.approvalTableRemoveNotPermitted(); + break; + case COULD_NOT_REMOVE: + default: + message = Util.C.approvalTableCouldNotRemove(); + } + new ErrorDialog(message + " " + resultError.getName()).center(); } } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java index e4fe6d2911..0618294ce2 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java @@ -78,6 +78,8 @@ public interface ChangeConstants extends Constants { String approvalTableReviewer(); String approvalTableAddReviewer(); + String approvalTableRemoveNotPermitted(); + String approvalTableCouldNotRemove(); String changeInfoBlockOwner(); String changeInfoBlockProject(); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties index 7032ddae11..e65832dcfe 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties @@ -55,6 +55,8 @@ changeScreenComments = Comments approvalTableReviewer = Reviewer approvalTableAddReviewer = Add Reviewer +approvalTableRemoveNotPermitted = Not allowed to remove reviewer +approvalTableCouldNotRemove = Could not remove reviewer changeInfoBlockOwner = Owner changeInfoBlockProject = Project diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/RemoveReviewer.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/RemoveReviewer.java index 4e54423009..e1c8c6b7fa 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/RemoveReviewer.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/RemoveReviewer.java @@ -78,12 +78,12 @@ public class RemoveReviewer implements Callable { } catch (OrmException ex) { result.addError(new ReviewerResult.Error( ReviewerResult.Error.Type.COULD_NOT_REMOVE, - "Could not remove reviewer " + reviewerId)); + reviewerId.toString())); } } else { result.addError(new ReviewerResult.Error( - ReviewerResult.Error.Type.COULD_NOT_REMOVE, - "Not allowed to remove reviewer " + reviewerId)); + ReviewerResult.Error.Type.REMOVE_NOT_PERMITTED, + reviewerId.toString())); } return result;