diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java index ca464f674..bb6cacf86 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepContribution.java @@ -69,8 +69,8 @@ public class StepContribution { /** * Increment the counter for the number of items written. */ - public void incrementWriteCount() { - writeCount++; + public void incrementWriteCount(int count) { + writeCount += count; } /** 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 d368fdba3..8b4e4f60a 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 @@ -253,7 +253,7 @@ public class ChunkOrientedTasklet implements Tasklet { try { listener.beforeWrite(items); itemWriter.write(items); - contribution.incrementWriteCount(); + contribution.incrementWriteCount(items.size()); listener.afterWrite(items); } catch (Exception e) { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java index 7e719ce69..55ac6f2e0 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/StepExecutionTests.java @@ -124,13 +124,13 @@ public class StepExecutionTests extends TestCase { contribution.incrementReadSkipCount(); contribution.incrementWriteSkipCount(); contribution.incrementReadCount(); - contribution.incrementWriteCount(); + contribution.incrementWriteCount(7); contribution.incrementFilterCount(1); execution.apply(contribution); assertEquals(1, execution.getReadSkipCount()); assertEquals(1, execution.getWriteSkipCount()); assertEquals(1, execution.getReadCount()); - assertEquals(1, execution.getWriteCount()); + assertEquals(7, execution.getWriteCount()); assertEquals(1, execution.getFilterCount()); } diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/ChunkOrientedTaskletTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/ChunkOrientedTaskletTests.java index f52525b41..a9bc47632 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/ChunkOrientedTaskletTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/item/ChunkOrientedTaskletTests.java @@ -68,6 +68,9 @@ public class ChunkOrientedTaskletTests { handler.execute(contribution, context); assertEquals(2, itemReader.count); assertEquals("12", itemWriter.values); + assertEquals(2, contribution.getReadCount()); + assertEquals(2, contribution.getWriteCount()); + assertEquals(0, contribution.getFilterCount()); } @Test