BATCH-1064: Switched the semantics of INCOMPLETE and FAILED. Combined INCOMPLETE with STOPPED. INCOMPLETE jobs and steps can be restarted while COMPLETED and FAILED jobs and steps cannot.
This commit is contained in:
@@ -45,17 +45,17 @@ public class BatchStatusTests {
|
||||
|
||||
@Test
|
||||
public void testMaxStatus() {
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.max(BatchStatus.FAILED,BatchStatus.COMPLETED));
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.max(BatchStatus.COMPLETED, BatchStatus.FAILED));
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.max(BatchStatus.FAILED, BatchStatus.FAILED));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.max(BatchStatus.INCOMPLETE,BatchStatus.COMPLETED));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.max(BatchStatus.COMPLETED, BatchStatus.INCOMPLETE));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.max(BatchStatus.INCOMPLETE, BatchStatus.INCOMPLETE));
|
||||
assertEquals(BatchStatus.STARTED, BatchStatus.max(BatchStatus.STARTED, BatchStatus.STARTING));
|
||||
assertEquals(BatchStatus.STARTED, BatchStatus.max(BatchStatus.COMPLETED, BatchStatus.STARTED));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpgradeStatusFinished() {
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.FAILED.upgradeTo(BatchStatus.COMPLETED));
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.COMPLETED.upgradeTo(BatchStatus.FAILED));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.INCOMPLETE.upgradeTo(BatchStatus.COMPLETED));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.COMPLETED.upgradeTo(BatchStatus.INCOMPLETE));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -68,7 +68,7 @@ public class BatchStatusTests {
|
||||
|
||||
@Test
|
||||
public void testIsRunning() {
|
||||
assertFalse(BatchStatus.FAILED.isRunning());
|
||||
assertFalse(BatchStatus.INCOMPLETE.isRunning());
|
||||
assertFalse(BatchStatus.COMPLETED.isRunning());
|
||||
assertTrue(BatchStatus.STARTED.isRunning());
|
||||
assertTrue(BatchStatus.STARTING.isRunning());
|
||||
@@ -76,7 +76,7 @@ public class BatchStatusTests {
|
||||
|
||||
@Test
|
||||
public void testIsUnsuccessful() {
|
||||
assertTrue(BatchStatus.FAILED.isUnsuccessful());
|
||||
assertTrue(BatchStatus.INCOMPLETE.isUnsuccessful());
|
||||
assertFalse(BatchStatus.COMPLETED.isUnsuccessful());
|
||||
assertFalse(BatchStatus.STARTED.isUnsuccessful());
|
||||
assertFalse(BatchStatus.STARTING.isUnsuccessful());
|
||||
@@ -84,7 +84,7 @@ public class BatchStatusTests {
|
||||
|
||||
@Test
|
||||
public void testGetStatus() {
|
||||
assertEquals(BatchStatus.FAILED, BatchStatus.valueOf(BatchStatus.FAILED.toString()));
|
||||
assertEquals(BatchStatus.INCOMPLETE, BatchStatus.valueOf(BatchStatus.INCOMPLETE.toString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -113,9 +113,9 @@ public class JobExecutionTests {
|
||||
*/
|
||||
@Test
|
||||
public void testDowngradeStatus() {
|
||||
execution.setStatus(BatchStatus.FAILED);
|
||||
execution.setStatus(BatchStatus.INCOMPLETE);
|
||||
execution.upgradeStatus(BatchStatus.COMPLETED);
|
||||
assertEquals(BatchStatus.FAILED, execution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, execution.getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -286,9 +286,9 @@ public class StepExecutionTests {
|
||||
*/
|
||||
@Test
|
||||
public void testDowngradeStatus() {
|
||||
execution.setStatus(BatchStatus.FAILED);
|
||||
execution.setStatus(BatchStatus.INCOMPLETE);
|
||||
execution.upgradeStatus(BatchStatus.COMPLETED);
|
||||
assertEquals(BatchStatus.FAILED, execution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, execution.getStatus());
|
||||
}
|
||||
|
||||
private StepExecution newStepExecution(Step step, Long long2) {
|
||||
|
||||
@@ -44,15 +44,15 @@ public class DefaultFailureJobParserTests extends AbstractJobParserTests {
|
||||
assertTrue(stepNamesList.contains("s1"));
|
||||
assertTrue(stepNamesList.contains("fail"));
|
||||
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus().getExitCode());
|
||||
|
||||
StepExecution stepExecution1 = getStepExecution(jobExecution, "s1");
|
||||
assertEquals(BatchStatus.COMPLETED, stepExecution1.getStatus());
|
||||
assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus());
|
||||
|
||||
StepExecution stepExecution2 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution2.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution2.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution2.getExitStatus().getExitCode());
|
||||
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class EndTransitionDefaultStatusJobParserTests extends AbstractJobParserT
|
||||
assertEquals(ExitStatus.COMPLETED, jobExecution.getExitStatus());
|
||||
|
||||
StepExecution stepExecution1 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution1.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution1.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution1.getExitStatus().getExitCode());
|
||||
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ public class EndTransitionJobParserTests extends AbstractJobParserTests {
|
||||
assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus());
|
||||
|
||||
StepExecution stepExecution2 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution2.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution2.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution2.getExitStatus().getExitCode());
|
||||
|
||||
//
|
||||
|
||||
@@ -17,6 +17,7 @@ package org.springframework.batch.core.configuration.xml;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -24,6 +25,7 @@ import org.springframework.batch.core.BatchStatus;
|
||||
import org.springframework.batch.core.ExitStatus;
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.repository.JobInstanceAlreadyCompleteException;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@@ -55,24 +57,21 @@ public class FailTransitionJobParserTests extends AbstractJobParserTests {
|
||||
assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus());
|
||||
|
||||
StepExecution stepExecution2 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution2.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution2.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution2.getExitStatus().getExitCode());
|
||||
|
||||
//
|
||||
// Second Launch
|
||||
//
|
||||
stepNamesList.clear();
|
||||
jobExecution = createJobExecution();
|
||||
job.execute(jobExecution);
|
||||
assertEquals(1, stepNamesList.size()); // step1 is not executed
|
||||
assertTrue(stepNamesList.contains("fail"));
|
||||
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals("EARLY TERMINATION (FAIL)", jobExecution.getExitStatus().getExitCode());
|
||||
|
||||
StepExecution stepExecution3 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution3.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution3.getExitStatus().getExitCode());
|
||||
try {
|
||||
jobExecution = createJobExecution();
|
||||
fail("JobInstanceAlreadyCompleteException expected");
|
||||
} catch (JobInstanceAlreadyCompleteException e) {
|
||||
//
|
||||
// Expected
|
||||
//
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ public class NextAttributeDefaultFailureJobParserTests {
|
||||
assertNotNull(job);
|
||||
JobExecution jobExecution = jobRepository.createJobExecution(job.getName(), new JobParameters());
|
||||
job.execute(jobExecution);
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(1, jobExecution.getStepExecutions().size());
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ public class SplitDifferentResultsFailFirstJobParserTests extends AbstractJobPar
|
||||
assertTrue(stepNamesList.contains("s1"));
|
||||
assertTrue(stepNamesList.contains("fail"));
|
||||
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED, jobExecution.getExitStatus());
|
||||
|
||||
StepExecution stepExecution1 = getStepExecution(jobExecution, "s1");
|
||||
@@ -52,7 +52,7 @@ public class SplitDifferentResultsFailFirstJobParserTests extends AbstractJobPar
|
||||
assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus());
|
||||
|
||||
StepExecution stepExecution2 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution2.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution2.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution2.getExitStatus().getExitCode());
|
||||
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class SplitDifferentResultsFailSecondJobParserTests extends AbstractJobPa
|
||||
assertEquals(ExitStatus.COMPLETED, stepExecution1.getExitStatus());
|
||||
|
||||
StepExecution stepExecution2 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.FAILED, stepExecution2.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution2.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution2.getExitStatus().getExitCode());
|
||||
|
||||
StepExecution stepExecution3 = getStepExecution(jobExecution, "s3");
|
||||
|
||||
@@ -47,11 +47,11 @@ public class StopIncompleteJobParserTests extends AbstractJobParserTests {
|
||||
assertEquals(1, stepNamesList.size());
|
||||
assertTrue(stepNamesList.contains("fail"));
|
||||
|
||||
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus().getExitCode());
|
||||
|
||||
StepExecution stepExecution1 = getStepExecution(jobExecution, "fail");
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution1.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution1.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution1.getExitStatus().getExitCode());
|
||||
|
||||
//
|
||||
|
||||
@@ -47,7 +47,7 @@ public class StopJobParserTests extends AbstractJobParserTests {
|
||||
assertEquals(1, stepNamesList.size());
|
||||
assertTrue(stepNamesList.contains("s1"));
|
||||
|
||||
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), jobExecution.getExitStatus().getExitCode());
|
||||
|
||||
StepExecution stepExecution1 = getStepExecution(jobExecution, "s1");
|
||||
|
||||
@@ -140,7 +140,7 @@ public class AbstractJobTests {
|
||||
|
||||
// simulate restart and check the job execution context's content survives
|
||||
execution.setEndTime(new Date());
|
||||
execution.setStatus(BatchStatus.FAILED);
|
||||
execution.setStatus(BatchStatus.INCOMPLETE);
|
||||
repository.update(execution);
|
||||
|
||||
JobExecution restarted = repository.createJobExecution("testHandleStepJob", new JobParameters());
|
||||
|
||||
@@ -251,7 +251,7 @@ public class SimpleJobTests {
|
||||
assertEquals(2, jobExecution.getAllFailureExceptions().size());
|
||||
assertEquals(exception, jobExecution.getStepExecutions().iterator().next().getFailureExceptions().get(0));
|
||||
assertEquals(0, list.size());
|
||||
checkRepository(BatchStatus.STOPPED, ExitStatus.FAILED);
|
||||
checkRepository(BatchStatus.INCOMPLETE, ExitStatus.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -265,8 +265,8 @@ public class SimpleJobTests {
|
||||
assertEquals(1, jobExecution.getAllFailureExceptions().size());
|
||||
assertEquals(exception, jobExecution.getAllFailureExceptions().get(0));
|
||||
assertEquals(0, list.size());
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
checkRepository(BatchStatus.FAILED, ExitStatus.FAILED);
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
checkRepository(BatchStatus.INCOMPLETE, ExitStatus.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -283,7 +283,7 @@ public class SimpleJobTests {
|
||||
assertEquals(1, jobExecution.getAllFailureExceptions().size());
|
||||
assertEquals(exception, jobExecution.getAllFailureExceptions().get(0));
|
||||
assertEquals(1, list.size());
|
||||
checkRepository(BatchStatus.FAILED, ExitStatus.FAILED);
|
||||
checkRepository(BatchStatus.INCOMPLETE, ExitStatus.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -297,7 +297,7 @@ public class SimpleJobTests {
|
||||
assertEquals(1, jobExecution.getAllFailureExceptions().size());
|
||||
assertEquals(exception, jobExecution.getAllFailureExceptions().get(0));
|
||||
assertEquals(0, list.size());
|
||||
checkRepository(BatchStatus.FAILED, ExitStatus.FAILED);
|
||||
checkRepository(BatchStatus.INCOMPLETE, ExitStatus.FAILED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -352,7 +352,7 @@ public class SimpleJobTests {
|
||||
job.execute(jobExecution);
|
||||
|
||||
assertEquals(0, list.size());
|
||||
checkRepository(BatchStatus.STOPPED, ExitStatus.NOOP);
|
||||
checkRepository(BatchStatus.FAILED, ExitStatus.NOOP);
|
||||
ExitStatus exitStatus = jobExecution.getExitStatus();
|
||||
assertEquals(ExitStatus.NOOP.getExitCode(), exitStatus.getExitCode());
|
||||
}
|
||||
@@ -386,7 +386,7 @@ public class SimpleJobTests {
|
||||
job.setJobExecutionListeners(new JobExecutionListener[] { listener });
|
||||
|
||||
job.execute(jobExecution);
|
||||
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
|
||||
verify(listener);
|
||||
}
|
||||
@@ -438,7 +438,7 @@ public class SimpleJobTests {
|
||||
|
||||
job.setSteps(Arrays.asList(new Step[] { step1, step2 }));
|
||||
job.execute(jobExecution);
|
||||
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(1, jobExecution.getAllFailureExceptions().size());
|
||||
Throwable expected = jobExecution.getAllFailureExceptions().get(0);
|
||||
assertTrue("Wrong exception " + expected, expected instanceof JobInterruptedException);
|
||||
@@ -536,19 +536,19 @@ public class SimpleJobTests {
|
||||
|
||||
if (exception instanceof RuntimeException) {
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setStatus(BatchStatus.INCOMPLETE);
|
||||
stepExecution.addFailureException(exception);
|
||||
return;
|
||||
}
|
||||
if (exception instanceof Error) {
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setStatus(BatchStatus.INCOMPLETE);
|
||||
stepExecution.addFailureException(exception);
|
||||
return;
|
||||
}
|
||||
if (exception instanceof JobInterruptedException) {
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
stepExecution.setStatus(BatchStatus.STOPPED);
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.addFailureException(exception);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -29,15 +29,15 @@ public class FlowExecutionTests {
|
||||
|
||||
@Test
|
||||
public void testBasicProperties() throws Exception {
|
||||
FlowExecution execution = new FlowExecution("foo", "BAR");
|
||||
FlowExecution execution = new FlowExecution("foo", new FlowExecutionStatus("BAR"));
|
||||
assertEquals("foo",execution.getName());
|
||||
assertEquals("BAR",execution.getStatus().getStatus());
|
||||
assertEquals("BAR",execution.getStatus().getExitStatus().getExitCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAlphaOrdering() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", "BAR");
|
||||
FlowExecution second = new FlowExecution("foo", "SPAM");
|
||||
FlowExecution first = new FlowExecution("foo", new FlowExecutionStatus("BAR"));
|
||||
FlowExecution second = new FlowExecution("foo", new FlowExecutionStatus("SPAM"));
|
||||
assertTrue("Should be negative",first.compareTo(second)<0);
|
||||
assertTrue("Should be positive",second.compareTo(first)>0);
|
||||
}
|
||||
@@ -45,31 +45,31 @@ public class FlowExecutionTests {
|
||||
@Test
|
||||
public void testEnumOrdering() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", FlowExecutionStatus.COMPLETED);
|
||||
FlowExecution second = new FlowExecution("foo", FlowExecutionStatus.FAILED);
|
||||
FlowExecution second = new FlowExecution("foo", FlowExecutionStatus.INCOMPLETE);
|
||||
assertTrue("Should be negative",first.compareTo(second)<0);
|
||||
assertTrue("Should be positive",second.compareTo(first)>0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumStartsWithOrdering() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", "COMPLETED.BAR");
|
||||
FlowExecution second = new FlowExecution("foo", "FAILED.FOO");
|
||||
FlowExecution first = new FlowExecution("foo", new FlowExecutionStatus("COMPLETED.BAR"));
|
||||
FlowExecution second = new FlowExecution("foo", new FlowExecutionStatus("FAILED.FOO"));
|
||||
assertTrue("Should be negative",first.compareTo(second)<0);
|
||||
assertTrue("Should be positive",second.compareTo(first)>0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumStartsWithAlphaOrdering() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", "COMPLETED.BAR");
|
||||
FlowExecution second = new FlowExecution("foo", "COMPLETED.FOO");
|
||||
FlowExecution first = new FlowExecution("foo", new FlowExecutionStatus("COMPLETED.BAR"));
|
||||
FlowExecution second = new FlowExecution("foo", new FlowExecutionStatus("COMPLETED.FOO"));
|
||||
assertTrue("Should be negative",first.compareTo(second)<0);
|
||||
assertTrue("Should be positive",second.compareTo(first)>0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnumAndAlpha() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", "ZZZZZ");
|
||||
FlowExecution second = new FlowExecution("foo", "FAILED.FOO");
|
||||
FlowExecution first = new FlowExecution("foo", new FlowExecutionStatus("ZZZZZ"));
|
||||
FlowExecution second = new FlowExecution("foo", new FlowExecutionStatus("FAILED.FOO"));
|
||||
assertTrue("Should be negative",first.compareTo(second)<0);
|
||||
assertTrue("Should be positive",second.compareTo(first)>0);
|
||||
}
|
||||
|
||||
@@ -32,8 +32,8 @@ import org.springframework.batch.core.JobInterruptedException;
|
||||
import org.springframework.batch.core.JobParameters;
|
||||
import org.springframework.batch.core.Step;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.UnexpectedJobExecutionException;
|
||||
import org.springframework.batch.core.job.flow.support.SimpleFlow;
|
||||
import org.springframework.batch.core.job.flow.support.StateSupport;
|
||||
import org.springframework.batch.core.job.flow.support.StateTransition;
|
||||
import org.springframework.batch.core.job.flow.support.state.DecisionState;
|
||||
import org.springframework.batch.core.job.flow.support.state.EndState;
|
||||
@@ -73,7 +73,10 @@ public class FlowJobTests {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -87,15 +90,11 @@ public class FlowJobTests {
|
||||
public void testFailedStep() throws Exception {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StepSupport("step1") {
|
||||
@Override
|
||||
public void execute(StepExecution stepExecution) throws JobInterruptedException,
|
||||
UnexpectedJobExecutionException {
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
}
|
||||
}), "step2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createStateTransition(new StateSupport("step1", FlowExecutionStatus.INCOMPLETE), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -110,43 +109,24 @@ public class FlowJobTests {
|
||||
public void testFailedStepRestarted() throws Exception {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StepSupport("step1") {
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2"));
|
||||
State step2State = new StateSupport("step2") {
|
||||
@Override
|
||||
public void execute(StepExecution stepExecution) throws JobInterruptedException,
|
||||
UnexpectedJobExecutionException {
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
jobRepository.update(stepExecution);
|
||||
}
|
||||
}), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2") {
|
||||
@Override
|
||||
public void execute(StepExecution stepExecution) throws JobInterruptedException,
|
||||
UnexpectedJobExecutionException {
|
||||
public FlowExecutionStatus handle(FlowExecutor executor) throws Exception {
|
||||
JobExecution jobExecution = executor.getJobExecution();
|
||||
jobExecution.getStepExecutions().add(new StepExecution(getName(), jobExecution));
|
||||
if (fail) {
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
jobRepository.update(stepExecution);
|
||||
} else {
|
||||
super.execute(stepExecution);
|
||||
return FlowExecutionStatus.INCOMPLETE;
|
||||
}
|
||||
else {
|
||||
return FlowExecutionStatus.COMPLETED;
|
||||
}
|
||||
}
|
||||
}), ExitStatus.COMPLETED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2") {
|
||||
@Override
|
||||
public void execute(StepExecution stepExecution) throws JobInterruptedException,
|
||||
UnexpectedJobExecutionException {
|
||||
if (fail) {
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setExitStatus(ExitStatus.FAILED);
|
||||
jobRepository.update(stepExecution);
|
||||
} else {
|
||||
super.execute(stepExecution);
|
||||
}
|
||||
}
|
||||
}), ExitStatus.FAILED.getExitCode(), "end1"));
|
||||
};
|
||||
transitions.add(StateTransition.createStateTransition(step2State, ExitStatus.COMPLETED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(step2State, ExitStatus.FAILED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.FAILED, "end1")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -166,14 +146,14 @@ public class FlowJobTests {
|
||||
public void testStoppingStep() throws Exception {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StepSupport("step1") {
|
||||
@Override
|
||||
public void execute(StepExecution stepExecution) throws JobInterruptedException,
|
||||
UnexpectedJobExecutionException {
|
||||
stepExecution.setStatus(BatchStatus.STOPPED);
|
||||
}
|
||||
}), "step2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2"));
|
||||
State state2 = new StateSupport("step2", FlowExecutionStatus.INCOMPLETE);
|
||||
transitions.add(StateTransition.createStateTransition(state2, ExitStatus.FAILED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(state2, ExitStatus.COMPLETED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end0"), "step3"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end1")));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), "end2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end2")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -184,7 +164,7 @@ public class FlowJobTests {
|
||||
catch (JobInterruptedException e) {
|
||||
// expected
|
||||
}
|
||||
assertEquals(1, jobExecution.getStepExecutions().size());
|
||||
assertEquals(2, jobExecution.getStepExecutions().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -192,8 +172,11 @@ public class FlowJobTests {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.STOPPED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -211,13 +194,16 @@ public class FlowJobTests {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.FAILED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
job.doExecute(jobExecution);
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(1, jobExecution.getStepExecutions().size());
|
||||
}
|
||||
|
||||
@@ -226,18 +212,18 @@ public class FlowJobTests {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "end"));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.STOPPED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end"), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.FAILED, "end1")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end1")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
|
||||
// To test a restart we have to use the AbstractJob.execute()...
|
||||
job.execute(jobExecution);
|
||||
assertEquals(BatchStatus.STOPPED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(1, jobExecution.getStepExecutions().size());
|
||||
|
||||
jobExecution = jobRepository.createJobExecution("job", new JobParameters());
|
||||
@@ -252,10 +238,15 @@ public class FlowJobTests {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "COMPLETED",
|
||||
"step3"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2"))));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step3"))));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "COMPLETED", "step3"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end1")));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), ExitStatus.FAILED.getExitCode(), "end2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), ExitStatus.COMPLETED.getExitCode(), "end3"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end2")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end3")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
@@ -268,9 +259,8 @@ public class FlowJobTests {
|
||||
@Test
|
||||
public void testBasicFlow() throws Throwable {
|
||||
SimpleFlow flow = new SimpleFlow("job");
|
||||
Step step = new StubStep("step");
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(step), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step")), "end0"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end0")));
|
||||
flow.setStateTransitions(transitions);
|
||||
job.setFlow(flow);
|
||||
@@ -293,12 +283,17 @@ public class FlowJobTests {
|
||||
};
|
||||
|
||||
List<StateTransition> transitions = new ArrayList<StateTransition>();
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "*", "decision"));
|
||||
transitions.add(StateTransition.createStateTransition(new DecisionState(decider, "decision"), "*", "step2"));
|
||||
transitions.add(StateTransition
|
||||
.createStateTransition(new DecisionState(decider, "decision"), "SWITCH", "step3"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step2")), "*"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new StepState(new StubStep("step3")), "*"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step1")), "decision"));
|
||||
transitions.add(StateTransition.createStateTransition(new DecisionState(decider, "decision"), "step2"));
|
||||
transitions.add(StateTransition.createStateTransition(new DecisionState(decider, "decision"), "SWITCH", "step3"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.COMPLETED.getExitCode(), "end0"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step2")), ExitStatus.FAILED.getExitCode(), "end1"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end0")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end1")));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), ExitStatus.FAILED.getExitCode(), "end2"));
|
||||
transitions.add(StateTransition.createStateTransition(new StepState(new StubStep("step3")), ExitStatus.COMPLETED.getExitCode(), "end3"));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.INCOMPLETE, ExitStatus.FAILED, "end2")));
|
||||
transitions.add(StateTransition.createEndStateTransition(new EndState(BatchStatus.COMPLETED, "end3")));
|
||||
flow.setStateTransitions(transitions);
|
||||
|
||||
job.setFlow(flow);
|
||||
@@ -325,7 +320,6 @@ public class FlowJobTests {
|
||||
job.setFlow(flow);
|
||||
job.afterPropertiesSet();
|
||||
|
||||
|
||||
Step step = job.getStep("step2");
|
||||
assertNotNull(step);
|
||||
assertEquals("step2", step.getName());
|
||||
|
||||
@@ -162,7 +162,7 @@ public class SimpleFlowTests {
|
||||
flow.setStateTransitions(collect(StateTransition.createStateTransition(new StubState("step1") {
|
||||
@Override
|
||||
public FlowExecutionStatus handle(FlowExecutor executor) {
|
||||
return FlowExecutionStatus.FAILED;
|
||||
return FlowExecutionStatus.INCOMPLETE;
|
||||
}
|
||||
}, "step2"), StateTransition.createEndStateTransition(new StubState("step2"))));
|
||||
flow.afterPropertiesSet();
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.springframework.batch.core.job.flow.support;
|
||||
|
||||
import org.springframework.batch.core.JobExecution;
|
||||
import org.springframework.batch.core.StepExecution;
|
||||
import org.springframework.batch.core.job.flow.FlowExecutionStatus;
|
||||
import org.springframework.batch.core.job.flow.FlowExecutor;
|
||||
import org.springframework.batch.core.job.flow.State;
|
||||
@@ -28,16 +30,26 @@ import org.springframework.batch.core.job.flow.support.state.AbstractState;
|
||||
*/
|
||||
public class StateSupport extends AbstractState {
|
||||
|
||||
/**
|
||||
* @param name
|
||||
*/
|
||||
private FlowExecutionStatus status;
|
||||
|
||||
public StateSupport(String name) {
|
||||
this(name, FlowExecutionStatus.COMPLETED);
|
||||
}
|
||||
|
||||
public StateSupport(String name, FlowExecutionStatus status) {
|
||||
super(name);
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FlowExecutionStatus handle(FlowExecutor executor) throws Exception {
|
||||
return FlowExecutionStatus.COMPLETED;
|
||||
JobExecution jobExecution = executor.getJobExecution();
|
||||
if (jobExecution != null) {
|
||||
jobExecution.getStepExecutions().add(new StepExecution(getName(), jobExecution));
|
||||
}
|
||||
return this.status;
|
||||
}
|
||||
|
||||
public void validate(String nextState) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.batch.core.job.flow.support.StateTransition;
|
||||
import org.springframework.batch.core.job.flow.State;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
@@ -28,98 +28,100 @@ import org.springframework.batch.core.job.flow.support.StateTransition;
|
||||
*/
|
||||
public class StateTransitionTests {
|
||||
|
||||
State state = new StateSupport("state1");
|
||||
|
||||
@Test
|
||||
public void testIsEnd() {
|
||||
StateTransition transition = StateTransition.createEndStateTransition(null, "");
|
||||
StateTransition transition = StateTransition.createEndStateTransition(state, "");
|
||||
assertTrue(transition.isEnd());
|
||||
assertNull(transition.getNext());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesStar() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "*", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "*", "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesNull() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, null, "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, null, "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesEmpty() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "", "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesExact() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTINUABLE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTINUABLE", "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesWildcard() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN*", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN*", "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMatchesPlaceholder() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN???LE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN???LE", "start");
|
||||
assertTrue(transition.matches("CONTINUABLE"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrderingEqual() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN???LE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN???LE", "start");
|
||||
assertEquals(0, transition.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrderingMoreGeneral() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN???LE", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(null, "CONTINUABLE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN???LE", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(state, "CONTINUABLE", "start");
|
||||
assertEquals(1, transition.compareTo(other));
|
||||
assertEquals(-1, other.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrderingMostGeneral() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(null, "CONTINUABLE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(state, "CONTINUABLE", "start");
|
||||
assertEquals(1, transition.compareTo(other));
|
||||
assertEquals(-1, other.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSubstringAndWildcard() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(null, "CONTINUABLE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(state, "CONTINUABLE", "start");
|
||||
assertEquals(1, transition.compareTo(other));
|
||||
assertEquals(-1, other.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrderingMostToNextGeneral() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(null, "C?", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(state, "C?", "start");
|
||||
assertEquals(1, transition.compareTo(other));
|
||||
assertEquals(-1, other.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleOrderingAdjacent() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CON*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(null, "CON?", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CON*", "start");
|
||||
StateTransition other = StateTransition.createStateTransition(state, "CON?", "start");
|
||||
assertEquals(1, transition.compareTo(other));
|
||||
assertEquals(-1, other.compareTo(transition));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToString() {
|
||||
StateTransition transition = StateTransition.createStateTransition(null, "CONTIN???LE", "start");
|
||||
StateTransition transition = StateTransition.createStateTransition(state, "CONTIN???LE", "start");
|
||||
String string = transition.toString();
|
||||
assertTrue("Wrong string: " + string, string.contains("Transition"));
|
||||
assertTrue("Wrong string: " + string, string.contains("start"));
|
||||
|
||||
@@ -87,7 +87,7 @@ public class EndStateTests {
|
||||
@Test
|
||||
public void testHandleOngoingAttemptedDowngrade() throws Exception {
|
||||
|
||||
jobExecution.setStatus(BatchStatus.FAILED);
|
||||
jobExecution.setStatus(BatchStatus.INCOMPLETE);
|
||||
jobExecution.createStepExecution("foo");
|
||||
|
||||
EndState state = new EndState(BatchStatus.COMPLETED, "end");
|
||||
@@ -99,7 +99,7 @@ public class EndStateTests {
|
||||
});
|
||||
|
||||
// Can't downgrade a status - if it failed then it failed
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -36,10 +36,10 @@ public class SimpleFlowExecutionAggregatorTests {
|
||||
@Test
|
||||
public void testFailed() throws Exception {
|
||||
FlowExecution first = new FlowExecution("foo", FlowExecutionStatus.COMPLETED);
|
||||
FlowExecution second = new FlowExecution("foo", FlowExecutionStatus.FAILED);
|
||||
FlowExecution second = new FlowExecution("foo", FlowExecutionStatus.INCOMPLETE);
|
||||
assertTrue("Should be negative", first.compareTo(second)<0);
|
||||
assertTrue("Should be positive", second.compareTo(first)>0);
|
||||
assertEquals(FlowExecutionStatus.FAILED, aggregator.aggregate(Arrays.asList(first, second)));
|
||||
assertEquals(FlowExecutionStatus.INCOMPLETE, aggregator.aggregate(Arrays.asList(first, second)));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -78,7 +78,7 @@ public class RestartIntegrationTests {
|
||||
int beforePartition = jdbcTemplate.queryForInt("SELECT COUNT(*) from BATCH_STEP_EXECUTION where STEP_NAME like 'step1:partition%'");
|
||||
|
||||
JobExecution execution = jobLauncher.run(job, jobParameters);
|
||||
assertEquals(BatchStatus.FAILED,execution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE,execution.getStatus());
|
||||
assertNotNull(jobLauncher.run(job, jobParameters));
|
||||
|
||||
int afterMaster = jdbcTemplate.queryForInt("SELECT COUNT(*) from BATCH_STEP_EXECUTION where STEP_NAME='step1:master'");
|
||||
|
||||
@@ -88,7 +88,7 @@ public class PartitionStepTests {
|
||||
throws Exception {
|
||||
Set<StepExecution> executions = stepSplitter.split(stepExecution, 2);
|
||||
for (StepExecution execution : executions) {
|
||||
execution.setStatus(BatchStatus.FAILED);
|
||||
execution.setStatus(BatchStatus.INCOMPLETE);
|
||||
execution.setExitStatus(ExitStatus.FAILED);
|
||||
}
|
||||
return executions;
|
||||
@@ -101,7 +101,7 @@ public class PartitionStepTests {
|
||||
step.execute(stepExecution);
|
||||
// one master and two workers
|
||||
assertEquals(3, stepExecution.getJobExecution().getStepExecutions().size());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,21 +45,21 @@ public class StepExecutionAggregatorTests {
|
||||
|
||||
@Test
|
||||
public void testAggregateStatusFromFailure() {
|
||||
result.setStatus(BatchStatus.FAILED);
|
||||
result.setStatus(BatchStatus.INCOMPLETE);
|
||||
stepExecution1.setStatus(BatchStatus.COMPLETED);
|
||||
stepExecution2.setStatus(BatchStatus.COMPLETED);
|
||||
aggregator.aggregate(result, Arrays.<StepExecution> asList(stepExecution1, stepExecution2));
|
||||
assertNotNull(result);
|
||||
assertEquals(BatchStatus.FAILED, result.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, result.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAggregateStatusIncomplete() {
|
||||
stepExecution1.setStatus(BatchStatus.COMPLETED);
|
||||
stepExecution2.setStatus(BatchStatus.FAILED);
|
||||
stepExecution2.setStatus(BatchStatus.INCOMPLETE);
|
||||
aggregator.aggregate(result, Arrays.<StepExecution> asList(stepExecution1, stepExecution2));
|
||||
assertNotNull(result);
|
||||
assertEquals(BatchStatus.FAILED, result.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, result.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -184,7 +184,7 @@ public abstract class AbstractStepExecutionDaoTests extends AbstractTransactiona
|
||||
dao.saveStepExecution(stepExecution);
|
||||
Integer versionAfterSave = stepExecution.getVersion();
|
||||
|
||||
stepExecution.setStatus(BatchStatus.STOPPED);
|
||||
stepExecution.setStatus(BatchStatus.FAILED);
|
||||
stepExecution.setLastUpdated(new Date(System.currentTimeMillis()));
|
||||
dao.updateStepExecution(stepExecution);
|
||||
assertEquals(versionAfterSave + 1, stepExecution.getVersion().intValue());
|
||||
@@ -192,7 +192,7 @@ public abstract class AbstractStepExecutionDaoTests extends AbstractTransactiona
|
||||
StepExecution retrieved = dao.getStepExecution(jobExecution, stepExecution.getId());
|
||||
assertEquals(stepExecution, retrieved);
|
||||
assertEquals(stepExecution.getLastUpdated(), retrieved.getLastUpdated());
|
||||
assertEquals(BatchStatus.STOPPED, retrieved.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, retrieved.getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -113,10 +113,10 @@ public class SimpleJobRepositoryIntegrationTests {
|
||||
// first execution failed
|
||||
firstJobExec.setStartTime(new Date(4));
|
||||
firstStepExec.setStartTime(new Date(5));
|
||||
firstStepExec.setStatus(BatchStatus.FAILED);
|
||||
firstStepExec.setStatus(BatchStatus.INCOMPLETE);
|
||||
firstStepExec.setEndTime(new Date(6));
|
||||
jobRepository.update(firstStepExec);
|
||||
firstJobExec.setStatus(BatchStatus.FAILED);
|
||||
firstJobExec.setStatus(BatchStatus.INCOMPLETE);
|
||||
firstJobExec.setEndTime(new Date(7));
|
||||
jobRepository.update(firstJobExec);
|
||||
|
||||
@@ -182,7 +182,7 @@ public class SimpleJobRepositoryIntegrationTests {
|
||||
@Test
|
||||
public void testGetLastJobExecution() throws Exception {
|
||||
JobExecution jobExecution = jobRepository.createJobExecution(job.getName(), jobParameters);
|
||||
jobExecution.setStatus(BatchStatus.FAILED);
|
||||
jobExecution.setStatus(BatchStatus.INCOMPLETE);
|
||||
jobExecution.setEndTime(new Date());
|
||||
jobRepository.update(jobExecution);
|
||||
Thread.sleep(10);
|
||||
|
||||
@@ -204,7 +204,7 @@ public class AbstractStepTests {
|
||||
tested.setStepExecutionListeners(new StepExecutionListener[] { listener1, listener2 });
|
||||
|
||||
tested.execute(execution);
|
||||
assertEquals(BatchStatus.FAILED, execution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, execution.getStatus());
|
||||
Throwable expected = execution.getFailureExceptions().get(0);
|
||||
assertEquals("crash!", expected.getMessage());
|
||||
|
||||
@@ -242,7 +242,7 @@ public class AbstractStepTests {
|
||||
tested.setStepExecutionListeners(new StepExecutionListener[] { listener1, listener2 });
|
||||
|
||||
tested.execute(execution);
|
||||
assertEquals(BatchStatus.STOPPED, execution.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, execution.getStatus());
|
||||
Throwable expected = execution.getFailureExceptions().get(0);
|
||||
assertEquals("JobExecution interrupted.", expected.getMessage());
|
||||
|
||||
|
||||
@@ -343,7 +343,7 @@ public class FaultTolerantStepFactoryBeanRetryTests {
|
||||
StepExecution stepExecution = new StepExecution(step.getName(), jobExecution);
|
||||
repository.add(stepExecution);
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
|
||||
List<String> expectedOutput = Arrays.asList(StringUtils.commaDelimitedListToStringArray(""));
|
||||
assertEquals(expectedOutput, written);
|
||||
@@ -439,7 +439,7 @@ public class FaultTolerantStepFactoryBeanRetryTests {
|
||||
StepExecution stepExecution = new StepExecution(step.getName(), jobExecution);
|
||||
repository.add(stepExecution);
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
|
||||
List<String> expectedOutput = Arrays.asList(StringUtils.commaDelimitedListToStringArray(""));
|
||||
assertEquals(expectedOutput, written);
|
||||
@@ -488,7 +488,7 @@ public class FaultTolerantStepFactoryBeanRetryTests {
|
||||
StepExecution stepExecution = new StepExecution(step.getName(), jobExecution);
|
||||
repository.add(stepExecution);
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
|
||||
// We added a bogus cache so no items are actually skipped
|
||||
// because they aren't recognised as eligible
|
||||
|
||||
@@ -112,7 +112,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution.getExitStatus().getExitCode());
|
||||
assertTrue(stepExecution.getExitStatus().getExitDescription().contains("Non-skippable exception during read"));
|
||||
|
||||
@@ -141,7 +141,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
assertEquals(1, reader.processed.size());
|
||||
assertEquals(ExitStatus.FAILED.getExitCode(), stepExecution.getExitStatus().getExitCode());
|
||||
assertTrue(stepExecution.getExitStatus().getExitDescription().contains("non-skippable exception"));
|
||||
@@ -335,7 +335,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
|
||||
assertEquals(3, stepExecution.getSkipCount());
|
||||
assertEquals(2, stepExecution.getReadSkipCount());
|
||||
@@ -374,7 +374,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
assertEquals("oops", stepExecution.getFailureExceptions().get(0).getCause().getMessage());
|
||||
|
||||
// listeners are called only once chunk is about to commit, so
|
||||
@@ -408,7 +408,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
assertEquals("oops", stepExecution.getFailureExceptions().get(0).getCause().getMessage());
|
||||
assertEquals(1, stepExecution.getSkipCount());
|
||||
assertEquals(0, stepExecution.getReadSkipCount());
|
||||
@@ -521,7 +521,7 @@ public class FaultTolerantStepFactoryBeanTests {
|
||||
Step step = (Step) factory.getObject();
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
assertEquals("bad skip count", 3, stepExecution.getSkipCount());
|
||||
assertEquals("bad read skip count", 2, stepExecution.getReadSkipCount());
|
||||
assertEquals("bad write skip count", 1, stepExecution.getWriteSkipCount());
|
||||
|
||||
@@ -159,7 +159,7 @@ public class SimpleStepFactoryBeanTests {
|
||||
job.execute(jobExecution);
|
||||
assertEquals("Error!", jobExecution.getAllFailureExceptions().get(0).getMessage());
|
||||
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
assertEquals(0, written.size());
|
||||
// provider should be at second item
|
||||
assertEquals("bar", reader.read());
|
||||
@@ -182,7 +182,7 @@ public class SimpleStepFactoryBeanTests {
|
||||
|
||||
job.execute(jobExecution);
|
||||
assertEquals("Foo", jobExecution.getAllFailureExceptions().get(0).getMessage());
|
||||
assertEquals(BatchStatus.FAILED, jobExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, jobExecution.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -7,8 +7,8 @@ import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.batch.core.BatchStatus.COMPLETED;
|
||||
import static org.springframework.batch.core.BatchStatus.INCOMPLETE;
|
||||
import static org.springframework.batch.core.BatchStatus.FAILED;
|
||||
import static org.springframework.batch.core.BatchStatus.STOPPED;
|
||||
import static org.springframework.batch.core.BatchStatus.UNKNOWN;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -73,14 +73,14 @@ public class TaskletStepExceptionTests {
|
||||
public void testApplicationException() throws Exception {
|
||||
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
assertEquals(INCOMPLETE, stepExecution.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInterrupted() throws Exception {
|
||||
taskletStep.setStepExecutionListeners(new StepExecutionListener[] { new InterruptionListener() });
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(STOPPED, stepExecution.getStatus());
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -94,7 +94,7 @@ public class TaskletStepExceptionTests {
|
||||
} });
|
||||
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
assertEquals(INCOMPLETE, stepExecution.getStatus());
|
||||
assertTrue(stepExecution.getFailureExceptions().contains(exception));
|
||||
assertEquals(2, jobRepository.getUpdateCount());
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public class TaskletStepExceptionTests {
|
||||
}
|
||||
} });
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
assertEquals(INCOMPLETE, stepExecution.getStatus());
|
||||
assertTrue(stepExecution.getFailureExceptions().contains(exception));
|
||||
assertEquals(2, jobRepository.getUpdateCount());
|
||||
}
|
||||
@@ -152,7 +152,7 @@ public class TaskletStepExceptionTests {
|
||||
}
|
||||
} });
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
assertEquals(INCOMPLETE, stepExecution.getStatus());
|
||||
assertTrue(stepExecution.getFailureExceptions().contains(taskletException));
|
||||
assertFalse(stepExecution.getFailureExceptions().contains(exception));
|
||||
assertEquals(2, jobRepository.getUpdateCount());
|
||||
@@ -170,7 +170,7 @@ public class TaskletStepExceptionTests {
|
||||
} });
|
||||
|
||||
taskletStep.execute(stepExecution);
|
||||
assertEquals(FAILED, stepExecution.getStatus());
|
||||
assertEquals(INCOMPLETE, stepExecution.getStatus());
|
||||
assertTrue(stepExecution.getFailureExceptions().contains(taskletException));
|
||||
assertTrue(stepExecution.getFailureExceptions().contains(exception));
|
||||
assertEquals(2, jobRepository.getUpdateCount());
|
||||
|
||||
@@ -114,7 +114,7 @@ public class StepExecutorInterruptionTests extends TestCase {
|
||||
|
||||
assertTrue("Timed out waiting for step to be interrupted.", count < 1000);
|
||||
assertFalse(processingThread.isAlive());
|
||||
assertEquals(BatchStatus.STOPPED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ public class StepExecutorInterruptionTests extends TestCase {
|
||||
|
||||
assertTrue("Timed out waiting for step to be interrupted.", count < 1000);
|
||||
assertFalse(processingThread.isAlive());
|
||||
assertEquals(BatchStatus.STOPPED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
|
||||
}
|
||||
|
||||
@@ -201,7 +201,7 @@ public class StepExecutorInterruptionTests extends TestCase {
|
||||
step.execute(stepExecution);
|
||||
|
||||
assertEquals("Planned!", stepExecution.getFailureExceptions().get(0).getMessage());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -541,7 +541,7 @@ public class TaskletStepTests {
|
||||
stepExecution.setExecutionContext(foobarEc);
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.STOPPED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
String msg = stepExecution.getExitStatus().getExitDescription();
|
||||
assertTrue("Message does not contain 'JobInterruptedException': " + msg, contains(msg,
|
||||
"JobInterruptedException"));
|
||||
@@ -565,7 +565,7 @@ public class TaskletStepTests {
|
||||
// step.setLastExecution(stepExecution);
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
// The original rollback was caused by this one:
|
||||
assertEquals("Foo", stepExecution.getFailureExceptions().get(0).getMessage());
|
||||
}
|
||||
@@ -588,7 +588,7 @@ public class TaskletStepTests {
|
||||
// step.setLastExecution(stepExecution);
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
// The original rollback was caused by this one:
|
||||
assertEquals("Foo", stepExecution.getFailureExceptions().get(0).getMessage());
|
||||
}
|
||||
@@ -723,7 +723,7 @@ public class TaskletStepTests {
|
||||
StepExecution stepExecution = new StepExecution(step.getName(), new JobExecution(jobInstance));
|
||||
|
||||
step.execute(stepExecution);
|
||||
assertEquals(BatchStatus.FAILED, stepExecution.getStatus());
|
||||
assertEquals(BatchStatus.INCOMPLETE, stepExecution.getStatus());
|
||||
Throwable expected = stepExecution.getFailureExceptions().get(0);
|
||||
assertEquals("CRASH!", expected.getMessage());
|
||||
assertFalse(stepExecution.getExecutionContext().isEmpty());
|
||||
|
||||
Reference in New Issue
Block a user