diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java
index fce7c2b5e..7e7f747f1 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/AbstractStepParser.java
@@ -94,15 +94,18 @@ public abstract class AbstractStepParser {
+ stepElement.getNodeName() + "/>.", stepElement);
}
- if (bd != null) {
- setUpBeanDefinition(stepElement, bd, parserContext, jobRepositoryRef);
- }
- else if (!stepUnderspecified) {
- parserContext.getReaderContext().error(
- "Step [" + stepElement.getAttribute(ID_ATTR) + "] has neither a <" + TASKLET_ELE
- + "/> element nor a '" + TASKLET_ATTR + "' attribute.", stepElement);
+ if (bd == null) {
+ if (stepUnderspecified) {
+ bd = new GenericBeanDefinition();
+ }
+ else {
+ parserContext.getReaderContext().error(
+ "Step [" + stepElement.getAttribute(ID_ATTR) + "] has neither a <" + TASKLET_ELE
+ + "/> element nor a '" + TASKLET_ATTR + "' attribute.", stepElement);
+ }
}
+ setUpBeanDefinition(stepElement, bd, parserContext, jobRepositoryRef);
return bd;
}
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java
index 821e97543..95a47ab6b 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/InlineStepParser.java
@@ -85,10 +85,8 @@ public class InlineStepParser extends AbstractStepParser {
}
else {
AbstractBeanDefinition bd = parseTasklet(element, parserContext, jobRepositoryRef);
- if (bd != null) {
- parserContext.registerBeanComponent(new BeanComponentDefinition(bd, stepId));
- stateBuilder.addConstructorArgReference(stepId);
- }
+ parserContext.registerBeanComponent(new BeanComponentDefinition(bd, stepId));
+ stateBuilder.addConstructorArgReference(stepId);
}
return FlowParser.getNextElements(parserContext, stepId, stateBuilder.getBeanDefinition(), element);
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java
index 84bb8d097..df0efc427 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StandaloneStepParser.java
@@ -16,7 +16,6 @@
package org.springframework.batch.core.configuration.xml;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
-import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
@@ -39,12 +38,6 @@ public class StandaloneStepParser extends AbstractStepParser {
*/
public AbstractBeanDefinition parse(Element element, ParserContext parserContext) {
String jobRepositoryRef = element.getAttribute("job-repository");
- AbstractBeanDefinition bd = parseTasklet(element, parserContext, jobRepositoryRef);
- if (bd == null) {
- bd = new GenericBeanDefinition();
- setUpBeanDefinition(element, bd, parserContext, element.getAttribute("job-repository"));
- }
-
- return bd;
+ return parseTasklet(element, parserContext, jobRepositoryRef);
}
}
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java
index 784cb550d..415cb043b 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelJobListenerParser.java
@@ -14,7 +14,7 @@ import org.w3c.dom.Element;
*/
public class TopLevelJobListenerParser extends AbstractSingleBeanDefinitionParser {
- private JobExecutionListenerParser jobListenerParser = new JobExecutionListenerParser();
+ private static final JobExecutionListenerParser jobListenerParser = new JobExecutionListenerParser();
@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java
index 0e420a389..f713e71d8 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepListenerParser.java
@@ -14,7 +14,7 @@ import org.w3c.dom.Element;
*/
public class TopLevelStepListenerParser extends AbstractSingleBeanDefinitionParser {
- private StepListenerParser stepListenerParser = new StepListenerParser();
+ private static final StepListenerParser stepListenerParser = new StepListenerParser();
@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java
index 7f59a67fa..e2e25f607 100644
--- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java
+++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/TopLevelStepParser.java
@@ -29,11 +29,12 @@ import org.w3c.dom.Element;
*/
public class TopLevelStepParser extends AbstractBeanDefinitionParser {
+ private static final StandaloneStepParser stepParser = new StandaloneStepParser();
+
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
CoreNamespaceUtils.checkForStepScope(parserContext, parserContext.extractSource(element));
- StandaloneStepParser stepParser = new StandaloneStepParser();
return stepParser.parse(element, parserContext);
}
diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java
index bd6874ff6..a8b6a6ded 100644
--- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java
+++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests.java
@@ -43,7 +43,7 @@ public class StopRestartOnCompletedStepJobParserTests extends AbstractJobParserT
//
// First Launch
//
- launchAndAssert("[s0, s1]");
+ launchAndAssert("[s1]");
//
// Second Launch
diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml
index 0b13bf574..86c7381b5 100644
--- a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml
+++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnCompletedStepJobParserTests-context.xml
@@ -7,7 +7,6 @@
-
@@ -17,6 +16,5 @@
-
\ No newline at end of file
diff --git a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml
index faf519718..54b3c6a81 100644
--- a/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml
+++ b/spring-batch-core/src/test/resources/org/springframework/batch/core/configuration/xml/StopRestartOnFailedStepJobParserTests-context.xml
@@ -8,14 +8,13 @@
-
+
+
+
-
-
-
\ No newline at end of file