From affb34c5fd818b6c171c59dc4380834dace4c8d7 Mon Sep 17 00:00:00 2001 From: robokaso Date: Thu, 6 Nov 2008 12:41:28 +0000 Subject: [PATCH] REOPENED - BATCH-896: "DRY" FaultTolerantTasklet implementations cleaned up the execute methods --- .../FaultTolerantChunkOrientedTasklet.java | 20 +++++----------- ...ringFaultTolerantChunkOrientedTasklet.java | 24 +++++++++---------- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/FaultTolerantChunkOrientedTasklet.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/FaultTolerantChunkOrientedTasklet.java index 82c518cb7..4caec4a68 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/FaultTolerantChunkOrientedTasklet.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/FaultTolerantChunkOrientedTasklet.java @@ -97,22 +97,18 @@ public class FaultTolerantChunkOrientedTasklet extends AbstractFaultTolera } }); - // If there is no input we don't have to do anything more - if (inputs.isEmpty()) { - return result; - } - } - Map skippedInputs = getBufferedSkips(attributes, SKIPPED_INPUTS_KEY); + final Map skippedInputs = getBufferedSkips(attributes, SKIPPED_INPUTS_KEY); + final Map skippedOutputs = getBufferedSkips(attributes, SKIPPED_OUTPUTS_KEY); + if (!inputs.isEmpty()) { inputs.removeAll(skippedInputs.keySet()); process(contribution, inputs, outputs, skippedInputs); - } - Map skippedOutputs = getBufferedSkips(attributes, SKIPPED_OUTPUTS_KEY); - outputs.removeAll(skippedOutputs.keySet()); - write(outputs, contribution, skippedOutputs); + outputs.removeAll(skippedOutputs.keySet()); + write(outputs, contribution, skippedOutputs); + } callSkipListeners(skippedReads, skippedInputs, skippedOutputs); @@ -122,10 +118,6 @@ public class FaultTolerantChunkOrientedTasklet extends AbstractFaultTolera attributes.removeAttribute(key); } - inputs.clear(); - skippedInputs.clear(); - skippedOutputs.clear(); - return result; } diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/NonbufferingFaultTolerantChunkOrientedTasklet.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/NonbufferingFaultTolerantChunkOrientedTasklet.java index 1893e8c08..3bcfcb60d 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/NonbufferingFaultTolerantChunkOrientedTasklet.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/NonbufferingFaultTolerantChunkOrientedTasklet.java @@ -69,21 +69,19 @@ public class NonbufferingFaultTolerantChunkOrientedTasklet extends // filter inputs marked for skipping final Map skippedInputs = getBufferedSkips(attributes, SKIPPED_INPUTS_KEY); - inputs.removeAll(skippedInputs.keySet()); - - // If there is no input we don't have to do anything more - if (inputs.isEmpty()) { - return result; - } - - final List outputs = new ArrayList(); - process(contribution, inputs, outputs, skippedInputs); - - // filter outputs marked for skipping final Map skippedOutputs = getBufferedSkips(attributes, SKIPPED_OUTPUTS_KEY); - outputs.removeAll(skippedOutputs.keySet()); - write(outputs, contribution, skippedOutputs); + if (!inputs.isEmpty()) { + inputs.removeAll(skippedInputs.keySet()); + + final List outputs = new ArrayList(); + process(contribution, inputs, outputs, skippedInputs); + + // filter outputs marked for skipping + outputs.removeAll(skippedOutputs.keySet()); + + write(outputs, contribution, skippedOutputs); + } callSkipListeners(skippedReads, skippedInputs, skippedOutputs);