diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java index 01d4d1cb9..6729991af 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractFlowParser.java @@ -350,9 +350,7 @@ public abstract class AbstractFlowParser extends AbstractSingleBeanDefinitionPar BeanDefinition endState = null; - // TODO: revise this for clarity - if (status == FlowExecutionStatus.STOPPED || status == FlowExecutionStatus.COMPLETED - || status == FlowExecutionStatus.FAILED) { + if (status.isEnd()) { BeanDefinitionBuilder endBuilder = BeanDefinitionBuilder .genericBeanDefinition("org.springframework.batch.core.job.flow.support.state.EndState"); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowExecutionStatus.java b/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowExecutionStatus.java index 757877dab..8b780598c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowExecutionStatus.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/job/flow/FlowExecutionStatus.java @@ -15,7 +15,6 @@ */ package org.springframework.batch.core.job.flow; - /** * This class is used as a holder for a BatchStatus/ExitStatus pair. * @@ -70,7 +69,7 @@ public class FlowExecutionStatus implements Comparable { public FlowExecutionStatus(String status) { this.name = status; } - + /** * @return true if the status starts with "STOPPED" */ @@ -84,7 +83,21 @@ public class FlowExecutionStatus implements Comparable { public boolean isFail() { return name.startsWith(FAILED.getName()); } - + + + /** + * @return true if this status represents the end of a flow + */ + public boolean isEnd() { + return isStop() || isFail() || isComplete(); + } + + /** + * @return true if the status starts with "COMPLETED" + */ + private boolean isComplete() { + return name.startsWith(COMPLETED.getName()); + } /** * Create an ordering on {@link FlowExecutionStatus} instances by comparing * their statuses. @@ -120,7 +133,7 @@ public class FlowExecutionStatus implements Comparable { FlowExecutionStatus other = (FlowExecutionStatus) object; return name.equals(other.name); } - + @Override public int hashCode() { return name.hashCode();