@Override public void receiveError(DispatchErrorEvent errorEvent) { DispatchLayer<?> above = dispatchStack.layerAbove(this); if (above != null) above.receiveError(errorEvent); }
@Override public void receiveError(DispatchErrorEvent errorEvent) { StateModel model; String owningProcess = errorEvent.getOwningProcess(); synchronized(stateMap) { model = stateMap.get(owningProcess); } if (model == null) { logger.warn("Error received for unknown owning process: " + owningProcess); return; } model.finishWith(errorEvent.getIndex()); getAbove().receiveError(errorEvent); }
@Override public void fail(String message, Throwable t, DispatchErrorType errorType) { logger.warn("Failed (" + errorType + ") invoking " + activity + " for job " + jobEvent + ": " + message, t); monMan.deregisterNode( invocationProcessIdentifier); getAbove().receiveError( new DispatchErrorEvent(jobEvent.getOwningProcess(), jobEvent.getIndex(), jobEvent.getContext(), message, t, errorType, activity)); }
/** * If an error occurs we can either handle the error or send it to the layer * above for further processing. */ @Override public void receiveError(DispatchErrorEvent errorEvent) { String owningProcess = errorEvent.getOwningProcess(); for (JobState rs : getJobsCopy(owningProcess)) if (identicalIndex(rs.jobEvent.getIndex(), errorEvent.getIndex())) { boolean handled = rs.handleError(); if (!handled) { removeJob(owningProcess, rs); getAbove().receiveError(errorEvent); return; } } }