/** * Remove the specified pending retry job from the cache * * @param owningProcess * Owning process identifier as returned by * {@link DispatchJobEvent#getOwningProcess()} * @param index * Index of the job as returned by * {@link DispatchJobEvent#getIndex()} */ protected void forget(String owningProcess, int[] index) { for (JobState jobState : getJobsCopy(owningProcess)) if (identicalIndex(jobState.jobEvent.getIndex(), index)) { removeJob(owningProcess, jobState); return; } // It could be due to pipelining activities like BioMart logger.debug("Could not forget " + owningProcess + " " + Arrays.toString(index)); }
/** * 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; } } }