BATCH-1822: JobExecution should be UNKNOWN if Step finishes that way

This commit is contained in:
Dave Syer
2012-07-23 11:52:43 +01:00
parent 57600f6f85
commit 60dfdf87bc
5 changed files with 34 additions and 5 deletions

View File

@@ -260,6 +260,19 @@ public class SimpleJobTests {
checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED);
}
@Test
public void testInterruptedAfterUnknownStatus() throws Exception {
step1.setStartLimit(5);
step2.setStartLimit(5);
final JobInterruptedException exception = new JobInterruptedException("Interrupt!", BatchStatus.UNKNOWN);
step1.setProcessException(exception);
job.execute(jobExecution);
assertEquals(1, jobExecution.getAllFailureExceptions().size());
assertEquals(exception, jobExecution.getStepExecutions().iterator().next().getFailureExceptions().get(0));
assertEquals(0, list.size());
checkRepository(BatchStatus.UNKNOWN, ExitStatus.STOPPED);
}
@Test
public void testFailed() throws Exception {
step1.setStartLimit(5);
@@ -573,7 +586,7 @@ public class SimpleJobTests {
if (exception instanceof JobInterruptedException) {
stepExecution.setExitStatus(ExitStatus.FAILED);
stepExecution.setStatus(BatchStatus.FAILED);
stepExecution.setStatus(((JobInterruptedException) exception).getStatus());
stepExecution.addFailureException(exception);
throw (JobInterruptedException) exception;
}

View File

@@ -227,8 +227,8 @@ public class FlowJobTests {
job.setFlow(flow);
job.afterPropertiesSet();
job.execute(jobExecution);
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
checkRepository(BatchStatus.STOPPED, ExitStatus.STOPPED);
assertEquals(BatchStatus.UNKNOWN, jobExecution.getStatus());
checkRepository(BatchStatus.UNKNOWN, ExitStatus.STOPPED);
assertEquals(1, jobExecution.getAllFailureExceptions().size());
assertEquals(JobInterruptedException.class, jobExecution.getFailureExceptions().get(0).getClass());
}