diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java index 3f4841b65..11ef2c26c 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/tasklet/TaskletStep.java @@ -266,7 +266,9 @@ public class TaskletStep extends AbstractStep { try { try { result = tasklet.execute(contribution, chunkContext); - Assert.state(result != null, "Tasklet execution must return a non-null RepeatStatus."); + if(result == null) { + result = RepeatStatus.FINISHED; + } } catch (Exception e) { if (transactionAttribute.rollbackOn(e)) { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java index 3d9c3ba67..abc73cef7 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/step/tasklet/TaskletStepTests.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.apache.commons.lang.mutable.MutableInt; import org.junit.Before; import org.junit.Test; import org.springframework.batch.core.BatchStatus; @@ -853,12 +854,7 @@ public class TaskletStepTests { JobExecution jobExecutionContext = new JobExecution(jobInstance); StepExecution stepExecution = new StepExecution(step.getName(), jobExecutionContext); step.execute(stepExecution); - assertEquals(BatchStatus.FAILED, stepExecution.getStatus()); - List exceptions = stepExecution.getFailureExceptions(); - assertEquals(1, exceptions.size()); - Throwable exception = exceptions.get(0); - assertTrue(exception instanceof IllegalStateException); - assertEquals("Tasklet execution must return a non-null RepeatStatus.", exception.getMessage()); + assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); } private static class JobRepositoryStub extends JobRepositorySupport {