/** * Does the current state of the TML represent an error? This is determined by * checking for any individual message which is at the * {@link TargettedMessage#SEVERITY_ERROR} severity level. * @return true if there is an error otherwise false */ public boolean isError() { for (int i = 0; i < size(); ++i) { if (messageAt(i).isError()) return true; } return false; }
/** * Appends multiple messages to this list, through multiple calls to * {@link #addMessage(TargettedMessage)}. * @param list List of messages to add */ public void addMessages(TargettedMessageList list) { for (int i = 0; i < list.size(); ++i) { addMessage(list.messageAt(i)); } }
/** Determines whether any errors have occured during the processing of * the current request. * @return true if errors otherwise false */ public static boolean isError() { return getErrorState().messages.isError(); }
public void setTarget(XMLLump forlump, TargettedMessage message) { TargettedMessageList messages = (TargettedMessageList) map.get(forlump); if (messages == null) { messages = new TargettedMessageList(); map.put(forlump, messages); } messages.addMessage(message); }
public static void appendErrors(String frontpath, TargettedMessageList tml, Errors errors) { tml.pushNestedPath(frontpath); try { for (int i = 0; i < errors.getErrorCount(); ++i) { tml.addMessage(SpringErrorConverter .SpringErrortoTargettedMessage(errors.getAllErrors().get(i))); } } finally { tml.popNestedPath(); } } }
public Object handleError(String returncode, Exception exception, String flowstate, String viewID, TargettedMessage message) { Object code = null; Throwable tohandlet = UniversalRuntimeException.unwrapException(exception); if (tohandlet != null && !(tohandlet instanceof Exception)) { // If it is an Error, throw it out immediately throw UniversalRuntimeException.accumulate(tohandlet); } Exception tohandle = (Exception) tohandlet; for (int i = 0; i < strategies.size(); ++i) { code = strategyAt(i).handleError(returncode, tohandle, flowstate, viewID, message); if (code != null) return code; } if (exception != null && code == null) { // Logger.log.warn("Error invoking action", exception); if (!messages.isError()) { if (messages.findGeneralError() == null) { messages.addMessage(new TargettedMessage( CoreMessages.GENERAL_ACTION_ERROR, new Object[] { "token-placeholder" }, exception)); } } throw UniversalRuntimeException.accumulate(exception, "Error invoking action"); } return null; }
public static void addMessage(TargettedMessage message) { ErrorStateEntry ese = getErrorState(); if (ese.errorid == null) { ese.errorid = idgenerator.generateID(); } getErrorState().messages.addMessage(message); }
TargettedMessageList messages = messagetargets.getMessages(lump); if (messages == null) messages = new TargettedMessageList(); if (!rendereddeadletters) { rendereddeadletters = true; .getMessages(MessageTargetter.DEAD_LETTERS); if (deadmessages != null) { messages.addMessages(deadmessages); if (messages.size() != 0) { if (messagelump == null) { Logger.log
if (messages.size() != 0) { TargettedMessage general = messages.findGeneralError(); if (general != null) { general.args[0] = errortoken;
errors.pushNestedPath(guardedpath + TargettedMessageList.BACKUP_PATH); try { if (guardmethod != null) { errors.popNestedPath(); TargettedMessage message = new TargettedMessage(e.getMessage(), e, match); errors.addMessage(message);
CoreMessages.GENERAL_SHOW_ERROR, args); errorstatemanager.getTargettedMessageList().addMessage(newerror);
/** Determines whether this message list contains a general action error entry, and * returns it. * @return error or null if no error */ public TargettedMessage findGeneralError() { for (int i = 0; i < size(); ++ i) { TargettedMessage message = messageAt(i); if (CoreMessages.GENERAL_ACTION_ERROR.equals(message.acquireMessageCode())) return message; if (CoreMessages.GENERAL_SHOW_ERROR.equals(message.acquireMessageCode())) return message; } return null; }
public Object handleError(Object actionresult, Exception exception) { // an ARIResult is at the end-of-line - this is now unsupported though. if (actionresult != null && !(actionresult instanceof String)) return actionresult; TargettedMessage tmessage = new TargettedMessage(); Object newcode = actionerrorstrategy.handleError((String) actionresult, exception, null, viewparams.viewID, tmessage); if (newcode != null && !(newcode instanceof String)) return newcode; for (int i = 0; i < messages.size(); ++i) { TargettedMessage message = messages.messageAt(i); if (message.exception != null) { try { Object testcode = actionerrorstrategy.handleError((String) newcode, message.exception, null, viewparams.viewID, message); if (testcode != null) newcode = testcode; } catch (Exception e) { // rethrow *original* more accurate URE, as per Az discovery throw UniversalRuntimeException.accumulate(message.exception, "Error invoking action"); } } } if (tmessage.messagecodes != null) { messages.addMessage(tmessage); } return newcode; }
TargettedMessage message = new TargettedMessage(CoreMessages.MISSING_DATA_ERROR, d.dar.path); d.darenv.messages.addMessage(message);
public void interceptActionResult(ARIResult result, ViewParameters incoming, Object actionReturn) { if (!targettedMessageList.isError()) { for (int i = 0; i < pent.size(); ++i) { DataAlterationRequest dar = pent.DARAt(i); try { darapplier.applyAlteration(result, dar, null); } catch (Exception e) { Logger.log.info("Error applying binding to outgoing URL state", e); } } } }
/** * Pack this list into a String for debugging purposes. * @return a String containing the packed list */ public String pack() { CharWrap togo = new CharWrap(); for (int i = 0; i < size(); ++i) { TargettedMessage mess = messageAt(i); togo.append("Target: " + mess.targetid + " message " + mess.acquireMessageCode() + "\n"); } return togo.toString(); }
new Object[] { dar.data }, e, oldpath); darenv.messages.addMessage(message);
public ARIResult interpretActionResult(ViewParameters incoming, Object result) { ARIResult togo = new ARIResult(); togo.resultingView = incoming; togo.propagateBeans = ARIResult.FLOW_END; boolean matchingrule = false; if (map.navigationRules != null) { for (int i = 0; i < map.navigationRules.size(); ++i) { NavigationRule rule = (NavigationRule) map.navigationRules.get(i); if (rule.fromViewId.viewID.equals(incoming.viewID)) { matchingrule = true; processCaseList(rule.navigationCases, togo, result); } } } List rulesfromviews = (List) fromviews.get(incoming.viewID); if (rulesfromviews != null && rulesfromviews.size() > 0) { matchingrule = true; } processCaseList(rulesfromviews, togo, result); if (messages.isError()) { // Apply this default EARLY so that a following ARI2 can see our decision // However, we *do* need to pick up any flow condition from the desired // NavigationCase. In fact we probably need a separate "onError" form of // NavigationCase "fromOutcome". togo.resultingView = incoming.copyBase(); } return matchingrule? togo : null; }
private Map condenseList(TargettedMessageList messagelist) { Map togo = new HashMap(); boolean doneGeneral = false; for (int i = 0; i < messagelist.size(); ++i) { TargettedMessage message = messagelist.messageAt(i); boolean isGeneral = CoreMessages.GENERAL_ACTION_ERROR.equals(message.acquireMessageCode()); if (isGeneral) { if (doneGeneral) { message = null; } else { doneGeneral = true; } } if (message != null) { MapUtil.putMultiMap(togo, new Integer(message.severity), message); } } return togo; }