diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowStep.java index 9e578aa66..466a1555c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowStep.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowStep.java @@ -70,6 +70,8 @@ public class FlowStep extends AbstractStep { StepHandler stepHandler = new SimpleStepHandler(getJobRepository(), stepExecution.getExecutionContext()); FlowExecutor executor = new JobFlowExecutor(getJobRepository(), stepHandler, stepExecution.getJobExecution()); executor.updateJobExecutionStatus(flow.start(executor).getStatus()); + stepExecution.upgradeStatus(executor.getJobExecution().getStatus()); + stepExecution.setExitStatus(executor.getJobExecution().getExitStatus()); } catch (FlowExecutionException e) { if (e.getCause() instanceof JobExecutionException) { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowStepTests.java index 6b6bee84b..e1f903947 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/job/flow/FlowStepTests.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.List; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.ExitStatus; @@ -98,8 +97,8 @@ public class FlowStepTests { } + // BATCH-1620 @Test - @Ignore // http://forum.springsource.org/showthread.php?t=94050 public void testDoExecuteAndFail() throws Exception { FlowStep step = new FlowStep(); @@ -122,7 +121,7 @@ public class FlowStepTests { jobRepository.add(stepExecution); step.execute(stepExecution); - stepExecution = getStepExecution(jobExecution, "step1`"); + stepExecution = getStepExecution(jobExecution, "step1"); assertEquals(ExitStatus.COMPLETED, stepExecution.getExitStatus()); stepExecution = getStepExecution(jobExecution, "step2"); assertEquals(ExitStatus.FAILED, stepExecution.getExitStatus());