Fix generic handling of NameAlreadyUsedException in GerritCallback

GerritCallback identifies a NameAlreadyUsedException by checking the
exception message. Since commit 7125a01aa2
the exception message may now include the already used name. Because of
this the check in GerritCallback must be adapted. Make sure that the
already used name is included into the displayed error message.

Change-Id: I27813bca41c6218e7f6ce740b43a8d596c8763b5
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin 2013-02-19 08:08:25 +01:00
parent 9e56ab322f
commit a041fc8889
6 changed files with 8 additions and 10 deletions

View File

@ -18,13 +18,9 @@ package com.google.gerrit.common.errors;
public class NameAlreadyUsedException extends Exception {
private static final long serialVersionUID = 1L;
public static final String MESSAGE = "Name Already Used";
public NameAlreadyUsedException() {
super(MESSAGE);
}
public static final String MESSAGE = "Name Already Used: ";
public NameAlreadyUsedException(String name) {
super(MESSAGE + ": " + name);
super(MESSAGE + name);
}
}

View File

@ -44,7 +44,6 @@ public interface GerritConstants extends Constants {
String notFoundTitle();
String notFoundBody();
String nameAlreadyUsedBody();
String noSuchAccountTitle();
String noSuchGroupTitle();

View File

@ -27,7 +27,6 @@ notSignedInBody = <b>Session Expired</b>\
notFoundTitle = Not Found
notFoundBody = The page you requested was not found, or you do not have permission to view this page.
nameAlreadyUsedBody = The name is already in use.
noSuchAccountTitle = Code Review - Unknown User
noSuchGroupTitle = Code Review - Unknown Group

View File

@ -23,6 +23,7 @@ public interface GerritMessages extends Messages {
String noSuchAccountMessage(String who);
String noSuchGroupMessage(String who);
String nameAlreadyUsedBody(String alreadyUsedName);
String branchCreationFailed(String branchName, String error);
String invalidBranchName(String branchName);

View File

@ -4,6 +4,7 @@ poweredBy = Powered by <a href="http://code.google.com/p/gerrit/" target="_blank
noSuchAccountMessage = {0} is not a registered user.
noSuchGroupMessage = Group {0} does not exist or is not visible to you.
nameAlreadyUsedBody = The name {0} is already in use.
branchCreationFailed = Creating branch {0} failed. Error: {1}
invalidBranchName = The branch name {0} is not valid.

View File

@ -54,7 +54,9 @@ public abstract class GerritCallback<T> implements
d.center();
} else if (isNameAlreadyUsed(caught)) {
new ErrorDialog(Gerrit.C.nameAlreadyUsedBody()).center();
final String msg = caught.getMessage();
final String alreadyUsedName = msg.substring(NameAlreadyUsedException.MESSAGE.length());
new ErrorDialog(Gerrit.M.nameAlreadyUsedBody(alreadyUsedName)).center();
} else if (isNoSuchGroup(caught)) {
final String msg = caught.getMessage();
@ -101,7 +103,7 @@ public abstract class GerritCallback<T> implements
private static boolean isNameAlreadyUsed(final Throwable caught) {
return caught instanceof RemoteJsonException
&& caught.getMessage().equals(NameAlreadyUsedException.MESSAGE);
&& caught.getMessage().startsWith(NameAlreadyUsedException.MESSAGE);
}
private static boolean isNoSuchGroup(final Throwable caught) {