From 70875e946a5c30afb629e3904cb1f47ae3f6bd45 Mon Sep 17 00:00:00 2001 From: Michael Minella Date: Thu, 6 Feb 2014 13:03:45 -0600 Subject: [PATCH] Changed FlowParser to always include a transition for COMPLETED unless a next attribute is present --- .../batch/core/jsr/configuration/xml/FlowParser.java | 7 +++---- .../batch/core/jsr/step/DecisionStepTests.java | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java index 3ba8a4df1..8d3cb04af 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/xml/FlowParser.java @@ -167,10 +167,6 @@ public class FlowParser extends AbstractFlowParser { stateDef, parserContext, false)); list.addAll(createTransition(FlowExecutionStatus.UNKNOWN, FlowExecutionStatus.UNKNOWN.getName(), null, null, stateDef, parserContext, false)); - if (!hasNextAttribute) { - list.addAll(createTransition(FlowExecutionStatus.COMPLETED, FlowExecutionStatus.COMPLETED.getName(), null, null, stateDef, parserContext, - false)); - } } if (hasNextAttribute) { @@ -180,6 +176,9 @@ public class FlowParser extends AbstractFlowParser { } list.add(getStateTransitionReference(parserContext, stateDef, null, shortNextAttribute)); + } else { + list.addAll(createTransition(FlowExecutionStatus.COMPLETED, FlowExecutionStatus.COMPLETED.getName(), null, null, stateDef, parserContext, + false)); } return list; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java index ef9f2f631..c2609248e 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/step/DecisionStepTests.java @@ -71,14 +71,14 @@ public class DecisionStepTests { } @Test - public void testDecisionInvalidExitStatus() throws Exception { + public void testDecisionUnmappedExitStatus() throws Exception { ApplicationContext context = new GenericXmlApplicationContext("classpath:/org/springframework/batch/core/jsr/step/DecisionStepTests-decisionInvalidExitStatus-context.xml"); JobLauncher launcher = context.getBean(JobLauncher.class); Job job = context.getBean(Job.class); JobExecution execution = launcher.run(job, new JobParameters()); - assertEquals(BatchStatus.FAILED, execution.getStatus()); + assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(2, execution.getStepExecutions().size()); for (org.springframework.batch.core.StepExecution curExecution : execution.getStepExecutions()) {