From db2344d2fac91c31fcafb5a80ce36deae87b3108 Mon Sep 17 00:00:00 2001 From: robokaso Date: Fri, 14 Mar 2008 15:35:11 +0000 Subject: [PATCH] IN PROGRESS - issue BATCH-461: skip counting http://jira.springframework.org/browse/BATCH-461 StepContribution#getSkipCount renamed to StepContribution#getStepSkipCount and added StepContribution#getContributionSkipCount (used by StepExecution to increment its skipCount). --- .../batch/core/StepContribution.java | 23 +++++++++++++++---- .../batch/core/StepExecution.java | 2 +- .../step/item/ItemSkipPolicyItemHandler.java | 4 ++-- 3 files changed, 21 insertions(+), 8 deletions(-) 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 1779c52c8..1517ec88f 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 @@ -33,7 +33,7 @@ public class StepContribution { private ExecutionContext executionContext; private int commitCount; - + private int skipCount; /** @@ -98,12 +98,25 @@ public class StepContribution { public boolean isTerminateOnly() { return execution.isTerminateOnly(); } - - public int getSkipCount() { + + /** + * @return the sum of skips accumulated in the parent {@link StepExecution} + * and this StepContribution. + */ + public int getStepSkipCount() { return skipCount + execution.getSkipCount(); } - - public void incrementSkipCount(){ + + /** + * @return the number of skips collected in this + * StepContribution (not including skips accumulated in the + * parent {@link StepExecution}. + */ + public int getContributionSkipCount() { + return skipCount; + } + + public void incrementSkipCount() { skipCount++; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java index bbba651b5..c0a29154f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/StepExecution.java @@ -307,7 +307,7 @@ public class StepExecution extends Entity { // TODO: this should not be necessary - the step decides // executionContext = contribution.getExecutionContext(); commitCount += contribution.getCommitCount(); - skipCount += contribution.getSkipCount(); + skipCount += contribution.getContributionSkipCount(); } /** diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ItemSkipPolicyItemHandler.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ItemSkipPolicyItemHandler.java index c985df50c..0322bc5db 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ItemSkipPolicyItemHandler.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/ItemSkipPolicyItemHandler.java @@ -64,7 +64,7 @@ public class ItemSkipPolicyItemHandler extends SimpleItemHandler { return getItemReader().read(); } catch (Exception e) { - if (itemSkipPolicy.shouldSkip(e, contribution.getSkipCount())) { + if (itemSkipPolicy.shouldSkip(e, contribution.getStepSkipCount())) { contribution.incrementSkipCount(); if (getItemReader() instanceof Skippable) { ((Skippable) getItemReader()).skip(); @@ -87,7 +87,7 @@ public class ItemSkipPolicyItemHandler extends SimpleItemHandler { getItemWriter().write(item); } catch (Exception e) { - if (itemSkipPolicy.shouldSkip(e, contribution.getSkipCount())) { + if (itemSkipPolicy.shouldSkip(e, contribution.getStepSkipCount())) { contribution.incrementSkipCount(); if (getItemReader() instanceof Skippable) { ((Skippable) getItemReader()).skip();