From c0c090c33341d7006ecdf079aa7aae456793db13 Mon Sep 17 00:00:00 2001 From: Sanghyuk Jung Date: Sat, 7 Sep 2013 05:21:01 +0900 Subject: [PATCH] BATCH-2096: 'chunk-completion-policy' or 'commit-interval' with '#{jobParameters[...]}' is ignored when 'retry-limit' exists. * Added a call for a completionPolicy when creating FaultTolerantStep * Added an assertion for the chunkCompletionPolicy in the unit test. JIRA: https://jira.springsource.org/browse/BATCH-2096 --- .../core/configuration/xml/StepParserStepFactoryBean.java | 1 + .../configuration/xml/StepParserStepFactoryBeanTests.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java index 72d962449c..a8eaf4ce13 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBean.java @@ -314,6 +314,7 @@ private Step createFaultTolerantStep() { if (commitInterval != null) { builder.chunk(commitInterval); } + builder.chunk(chunkCompletionPolicy); enhanceTaskletStepBuilder(builder); builder.reader(itemReader); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBeanTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBeanTests.java index 5678cb4f71..8c02fe0bb9 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBeanTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/configuration/xml/StepParserStepFactoryBeanTests.java @@ -248,6 +248,10 @@ public void testFaultTolerantStep() throws Exception { assertEquals(new Integer(10), throttleLimit); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof ChunkOrientedTasklet); + Object chunkProvider = ReflectionTestUtils.getField(tasklet, "chunkProvider"); + Object repeatOperations = ReflectionTestUtils.getField(chunkProvider, "repeatOperations"); + Object completionPolicy = ReflectionTestUtils.getField(repeatOperations, "completionPolicy"); + assertTrue(completionPolicy instanceof DummyCompletionPolicy); } @Test