diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyBeanPostProcessor.java b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyBeanPostProcessor.java index d5c03afc3..9ef662dc0 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyBeanPostProcessor.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/jsr/configuration/support/BatchPropertyBeanPostProcessor.java @@ -97,7 +97,10 @@ public class BatchPropertyBeanPostProcessor implements BeanPostProcessor, BeanFa StepContext stepContext = StepSynchronizationManager.getContext(); if (stepContext != null) { - String originalArtifactName = artifactName.substring(SCOPED_TARGET_BEAN_PREFIX.length()); + String originalArtifactName = artifactName; + if(originalArtifactName.startsWith(SCOPED_TARGET_BEAN_PREFIX)) { + originalArtifactName = artifactName.substring(SCOPED_TARGET_BEAN_PREFIX.length()); + } return batchPropertyContext.getStepArtifactProperties(stepContext.getStepName(), originalArtifactName); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobContextFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobContextFactoryBeanTests.java index 5b1399b1a..7d2875b7f 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobContextFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/JobContextFactoryBeanTests.java @@ -53,6 +53,7 @@ public class JobContextFactoryBeanTests { @After public void tearDown() throws Exception { factoryBean.close(); + StepSynchronizationManager.close(); } @Test diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepContextFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepContextFactoryBeanTests.java index 1863b05e0..5f3afc194 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepContextFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/StepContextFactoryBeanTests.java @@ -14,7 +14,9 @@ import java.util.concurrent.Future; import javax.batch.runtime.context.StepContext; +import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -32,6 +34,15 @@ public class StepContextFactoryBeanTests { @Mock private BatchPropertyContext propertyContext; + /** + * Added to clean up left overs from other tests. + * @throws Exception + */ + @BeforeClass + public static void setUpClass() throws Exception { + StepSynchronizationManager.close(); + } + @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); @@ -39,6 +50,11 @@ public class StepContextFactoryBeanTests { factory.setBatchPropertyContext(propertyContext); } + @After + public void tearDown() throws Exception { + StepSynchronizationManager.close(); + } + @Test(expected=FactoryBeanNotInitializedException.class) public void testNoStepExecutionRegistered() throws Exception { factory.getObject(); @@ -107,7 +123,7 @@ public class StepContextFactoryBeanTests { } catch (Throwable ignore) { return null; }finally { - StepSynchronizationManager.release(); + StepSynchronizationManager.close(); } } })); @@ -148,7 +164,7 @@ public class StepContextFactoryBeanTests { } catch (Throwable ignore) { return null; }finally { - StepSynchronizationManager.release(); + StepSynchronizationManager.close(); } } }));