public void resetForNewExecution(final long timestamp, final long expectedGlobalModVersion) throws GlobalModVersionMismatch { synchronized (stateMonitor) { // check and reset the sharing groups with scheduler hints if (slotSharingGroup != null) { slotSharingGroup.clearTaskAssignment(); } for (int i = 0; i < parallelism; i++) { taskVertices[i].resetForNewExecution(timestamp, expectedGlobalModVersion); taskVertices[i].clearAssignedInputSplits(); } // set up the input splits again try { if (this.inputSplitsMap != null) { splitAssignerMap.clear(); Map<OperatorID, InputSplitSource<?>> splitSourceMap = jobVertex.getInputSplitSources(); for (Map.Entry<OperatorID, InputSplit[]> entry : inputSplitsMap.entrySet()) { OperatorID operatorID = entry.getKey(); splitAssignerMap.put(operatorID, ((InputSplitSource<InputSplit>) splitSourceMap.get(operatorID)).getInputSplitAssigner(entry.getValue())); } } } catch (Throwable t) { throw new RuntimeException("Re-creating the input split assigner failed: " + t.getMessage(), t); } } }
Map<OperatorID, InputSplitSource<?>> splitSourceMap = jobVertex.getInputSplitSources();
if (jobVertex.getInputSplitSources() != null) {