throw new RuntimeException("Invalid recovery event for attempt finished"
+ ", more completions than starts encountered"
+ ", finishedAttempts=" + finishedAttempts
+ ", incompleteAttempts=" + numberUncompletedAttempts);
}
TaskAttemptFinishedEvent taskAttemptFinishedEvent =
(TaskAttemptFinishedEvent) historyEvent;
TaskAttempt taskAttempt = this.attempts.get(
taskAttemptFinishedEvent.getTaskAttemptID());
if (taskAttempt == null) {
throw new RuntimeException("Could not find task attempt"
+ " when trying to recover"
+ ", taskAttemptId=" + taskAttemptFinishedEvent.getTaskAttemptID());
}
TaskAttemptState taskAttemptState = taskAttempt.restoreFromEvent(
taskAttemptFinishedEvent);
if (taskAttemptState.equals(TaskAttemptState.SUCCEEDED)) {
recoveredState = TaskState.SUCCEEDED;