@Override public void receiveError(DispatchErrorEvent errorEvent) { logger.error("Error received in dispatch stack on owningProcess:" + errorEvent.getOwningProcess() + ", msg:" + errorEvent.getMessage(), errorEvent.getCause()); if (errorEvent.getIndex().length == 0) sendCachePurge(errorEvent.getOwningProcess()); }
@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); }
/** * Always send the error document job result on receiving a failure, at * least for now! This should be configurable, in effect this is the part * that ensures the processor never sees a top level failure. */ @Override public void receiveError(DispatchErrorEvent errorEvent) { getState(errorEvent.getOwningProcess()).incrementErrorsTranslated(); sendErrorOutput(errorEvent, errorEvent.getCause(), null); }
/** * 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; } } }
/** * Create an {@link ErrorProvenanceItem} and send across to the * {@link ProvenanceConnector} */ @Override public void receiveError(DispatchErrorEvent errorEvent) { IterationProvenanceItem iterationProvItem = getIterationProvItem(errorEvent); // get using errorEvent.getOwningProcess(); ErrorProvenanceItem errorItem = new ErrorProvenanceItem(); errorItem.setCause(errorEvent .getCause()); errorItem.setErrorType(errorEvent .getFailureType().toString()); errorItem.setMessage(errorEvent.getMessage()); errorItem.setProcessId(errorEvent.getOwningProcess()); errorItem.setIdentifier(uuid()); errorItem.setParentId(iterationProvItem.getIdentifier()); // iterationProvItem.setErrorItem(errorItem); // FIXME don't need to add to the processor item earlier getReporter().addProvenanceItem(errorItem); super.receiveError(errorEvent); }