diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ChunkOrientedTasklet.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ChunkOrientedTasklet.java index 8b4e4f60a..01962dd5d 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ChunkOrientedTasklet.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ChunkOrientedTasklet.java @@ -144,6 +144,8 @@ public class ChunkOrientedTasklet implements Tasklet { return result; } + contribution.incrementReadCount(inputs.size()); + storeInputs(attributes, inputs); } @@ -203,8 +205,6 @@ public class ChunkOrientedTasklet implements Tasklet { int filtered = 0; for (ItemWrapper item : inputs) { - contribution.incrementReadCount(); - S output = doProcess(item); if (output != null) { outputs.add(output); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java index 0d9b1eb25..5c5851b61 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java @@ -434,7 +434,6 @@ public class SkipLimitStepFactoryBean extends SimpleStepFactoryBean } } - contribution.incrementReadCount(inputs.size()); contribution.incrementFilterCount(filtered); inputs.clear(); diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java index b38b84ebd..dc7a0825f 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/StatefulRetryTaskletTests.java @@ -250,7 +250,7 @@ public class StatefulRetryTaskletTests { handler.execute(contribution, attributes); assertEquals(1, chunk.getSkips().size()); - assertEquals(2, contribution.getReadCount()); + assertEquals(3, contribution.getReadCount()); assertEquals(1, contribution.getProcessSkipCount()); assertEquals(5, processed.size()); assertEquals("[p1, p2]", written.toString()); @@ -305,7 +305,7 @@ public class StatefulRetryTaskletTests { // expected } assertTrue(attributes.hasAttribute("INPUT_BUFFER_KEY")); - assertEquals(0, contribution.getReadCount()); + assertEquals(3, contribution.getReadCount()); assertEquals(2, contribution.getProcessSkipCount()); // Just before the skip at the end we process once more assertEquals(3, processed.size());