diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java index 5dc5a1239..55807c60e 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/jsr/configuration/xml/SimpleItemBasedJobParsingTests.java @@ -63,7 +63,7 @@ public class SimpleItemBasedJobParsingTests { assertEquals(BatchStatus.COMPLETED, execution.getStatus()); assertEquals(4, execution.getStepExecutions().size()); assertEquals(27, processor.count); - assertEquals(2, policy.checkpointCount); + assertEquals(1, policy.checkpointCount); assertEquals(8, writer.writeCount); assertEquals(27, writer.itemCount); } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java index f476dac46..0687133c6 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/jsr/repeat/CheckpointAlgorithmAdapter.java @@ -34,6 +34,7 @@ import org.springframework.util.Assert; public class CheckpointAlgorithmAdapter implements CompletionPolicy { private CheckpointAlgorithm policy; + private boolean isComplete = false; public CheckpointAlgorithmAdapter(CheckpointAlgorithm policy) { Assert.notNull(policy, "A CheckpointAlgorithm is required"); @@ -47,7 +48,8 @@ public class CheckpointAlgorithmAdapter implements CompletionPolicy { @Override public boolean isComplete(RepeatContext context, RepeatStatus result) { try { - return policy.isReadyToCheckpoint(); + isComplete = policy.isReadyToCheckpoint(); + return isComplete; } catch (Exception e) { throw new BatchRuntimeException(e); } @@ -59,7 +61,8 @@ public class CheckpointAlgorithmAdapter implements CompletionPolicy { @Override public boolean isComplete(RepeatContext context) { try { - return policy.isReadyToCheckpoint(); + isComplete = policy.isReadyToCheckpoint(); + return isComplete; } catch (Exception e) { throw new BatchRuntimeException(e); } @@ -88,7 +91,7 @@ public class CheckpointAlgorithmAdapter implements CompletionPolicy { @Override public void update(RepeatContext context) { try { - if(policy.isReadyToCheckpoint()) { + if(isComplete) { policy.endCheckpoint(); } } catch (Exception e) {