/** * Creates an empty error message command. * * @return a empty error message command. */ protected RemoteErrorMessageCommand createDetailedErrorMessageCommand() { RemoteErrorMessageCommand messageCommand = new RemoteErrorMessageCommand(); messageCommand.setTitle(getTranslation("error", getLocale())); messageCommand.setTitleIcon(getIconFactory().getErrorIcon(getIconFactory().getTinyIconSize())); messageCommand.setMessageIcon(getIconFactory().getErrorIcon(getIconFactory().getLargeIconSize())); return messageCommand; }
/** * {@inheritDoc} */ @Override public boolean handleException(Throwable ex, Map<String, Object> context) { if (super.handleException(ex, context)) { return true; } RemoteMessageCommand errorMessageCommand; String userFriendlyExceptionMessage = computeUserFriendlyExceptionMessage(ex); if (userFriendlyExceptionMessage != null) { errorMessageCommand = createErrorMessageCommand(); errorMessageCommand.setMessage(userFriendlyExceptionMessage); } else { errorMessageCommand = createDetailedErrorMessageCommand(); traceUnexpectedException(ex); errorMessageCommand.setMessage(ex.getLocalizedMessage()); StringWriter stringWriter = new StringWriter(); ex.printStackTrace(new PrintWriter(stringWriter)); ((RemoteErrorMessageCommand) errorMessageCommand).setDetailMessage(stringWriter.toString()); // This is a very unexpected exception. Too risky to continue since there could be de-synchronizations // between client and server. stop(); } registerCommand(errorMessageCommand); return true; }