diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java index 48aa64415..6690db610 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapStepExecutionDao.java @@ -92,6 +92,9 @@ public class MapStepExecutionDao implements StepExecutionDao { public List getStepExecutions(JobExecution jobExecution) { Map executions = executionsByJobExecutionId.get(jobExecution.getId()); + if (executions == null || executions.isEmpty()) { + return Collections.emptyList(); + } List result = new ArrayList(executions.values()); Collections.sort(result, new Comparator() { diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java index 2cc1f8e6a..e9c2f5bd7 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractStepExecutionDaoTests.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -226,6 +227,12 @@ public abstract class AbstractStepExecutionDaoTests extends AbstractTransactiona } + @Test + public void testGetStepExecutionsWhenNoneExist() throws Exception { + assertEquals("empty list is returned if no stepExecutions exist for given jobExecution", Collections + .emptyList(), dao.getStepExecutions(jobExecution)); + } + private void assertStepExecutionsAreEqual(StepExecution expected, StepExecution actual) { assertEquals(expected.getId(), actual.getId()); assertEquals(expected.getStartTime(), actual.getStartTime());