| abortJob(JobContext, JobStatus.State) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| isCommitJobRepeatable(JobContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| setupJob(JobContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| cleanupJob(JobContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| commitJob(JobContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| setupTask(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| needsTaskCommit(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| commitTask(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| abortTask(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| recoverTask(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| isRecoverySupported(JobContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| commitJob(JobContext) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| abortJob(JobContext, int) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| OutputCommitter() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isRecoverySupported(JobContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isRecoverySupported() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isCommitJobRepeatable(JobContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| cleanupJob(JobContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| recoverTask(TaskAttemptContext) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |