this.tupleInfos = planFragment.getTupleInfos();
this.maxConsecutiveErrorCount = maxConsecutiveErrorCount;
this.minErrorDuration = minErrorDuration;
for (Entry<PlanNodeId, URI> entry : initialExchangeLocations.entries()) {
ScheduledSplit scheduledSplit = new ScheduledSplit(nextSplitId.getAndIncrement(), createRemoteSplitFor(entry.getValue()));
pendingSplits.put(entry.getKey(), scheduledSplit);
}
this.exchangeLocations.putAll(initialExchangeLocations);
List<BufferInfo> bufferStates = ImmutableList.copyOf(transform(initialOutputIds, new Function<String, BufferInfo>()
{
@Override
public BufferInfo apply(String outputId)
{
return new BufferInfo(outputId, false, 0, 0);
}
}));
if (initialSplit != null) {
checkState(planFragment.isPartitioned(), "Plan is not partitioned");
pendingSplits.put(planFragment.getPartitionedSource(), new ScheduledSplit(nextSplitId.getAndIncrement(), initialSplit));
}
TaskStats taskStats = new TaskContext(taskId, executor, session).getTaskStats();
taskInfo = new StateMachine<>("task " + taskId, executor, new TaskInfo(