diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java index 1ba6de926..6c8e2aaba 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java @@ -56,7 +56,10 @@ import org.springframework.util.Assert; * This factory does not support configuration of fault-tolerant behavior, use * appropriate subclass of this factory bean to configure skip or retry. * + * @see FaultTolerantStepFactoryBean + * * @author Dave Syer + * @author Robert Kasanicky * */ public class SimpleStepFactoryBean implements FactoryBean, BeanNameAware { @@ -114,7 +117,7 @@ public class SimpleStepFactoryBean implements FactoryBean, BeanNameAware { public SimpleStepFactoryBean() { super(); } - + /** * Set the bean name property, which will become the name of the * {@link Step} when it is created. @@ -444,12 +447,15 @@ public class SimpleStepFactoryBean implements FactoryBean, BeanNameAware { step.setStepOperations(stepOperations); SimpleChunkProvider chunkProvider = new SimpleChunkProvider(itemReader, chunkOperations); - List> readListeners = BatchListenerFactoryHelper.>getListeners(getListeners(), ItemReadListener.class); + List> readListeners = BatchListenerFactoryHelper.> getListeners( + getListeners(), ItemReadListener.class); chunkProvider.setListeners(readListeners); SimpleChunkProcessor chunkProcessor = new SimpleChunkProcessor(itemProcessor, itemWriter); - chunkProcessor.setListeners(BatchListenerFactoryHelper.>getListeners(getListeners(), ItemProcessListener.class)); - chunkProcessor.setListeners(BatchListenerFactoryHelper.>getListeners(getListeners(), ItemWriteListener.class)); + chunkProcessor.setListeners(BatchListenerFactoryHelper.> getListeners(getListeners(), + ItemProcessListener.class)); + chunkProcessor.setListeners(BatchListenerFactoryHelper.> getListeners(getListeners(), + ItemWriteListener.class)); ChunkOrientedTasklet tasklet = new ChunkOrientedTasklet(chunkProvider, chunkProcessor); @@ -457,7 +463,7 @@ public class SimpleStepFactoryBean implements FactoryBean, BeanNameAware { // need to register them here because the step will not know we did // that. List chunkListeners = new ArrayList(Arrays.asList(getListeners())); - for(Object itemHandler: new Object[]{itemReader, itemWriter, itemProcessor}){ + for (Object itemHandler : new Object[] { itemReader, itemWriter, itemProcessor }) { if (itemHandler instanceof ItemStream) { step.registerStream((ItemStream) itemHandler); } @@ -475,17 +481,12 @@ public class SimpleStepFactoryBean implements FactoryBean, BeanNameAware { } } - BatchListenerFactoryHelper.addChunkListeners(chunkOperations, chunkListeners.toArray(new StepListener[]{})); - List array = BatchListenerFactoryHelper.getListeners(listeners, - StepExecutionListener.class); - StepExecutionListener[] stepListeners = new StepExecutionListener[array.size()]; - for (int i = 0; i < stepListeners.length; i++) { - stepListeners[i] = array.get(i); - } - step.setStepExecutionListeners(stepListeners); + BatchListenerFactoryHelper.addChunkListeners(chunkOperations, chunkListeners.toArray(new StepListener[] {})); + step.setStepExecutionListeners(BatchListenerFactoryHelper.getListeners(listeners, StepExecutionListener.class) + .toArray(new StepExecutionListener[] {})); step.setTasklet(tasklet); - + } /**