diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java index 101b77f28..ef1da2346 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/MultiResourceItemReader.java @@ -95,9 +95,7 @@ public class MultiResourceItemReader implements ItemReader, ItemStream { delegate.open(new ExecutionContext()); } - T item; - item = readNextItem(); - return item; + return readNextItem(); } /** @@ -209,7 +207,7 @@ public class MultiResourceItemReader implements ItemReader, ItemStream { } public Resource getCurrentResource() { - if (currentResource >= resources.length) { + if (currentResource >= resources.length || currentResource < 0) { return null; } return resources[currentResource]; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderIntegrationTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderIntegrationTests.java index 0a7cd7c29..e43c8b229 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderIntegrationTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/MultiResourceItemReaderIntegrationTests.java @@ -344,5 +344,12 @@ public class MultiResourceItemReaderIntegrationTests { //the 1st item, rather than on open } } + + @Test + public void testGetCurrentResourceBeforeRead() throws Exception { + tested.open(ctx); + assertNull("There is no 'current' resource before read is called", tested.getCurrentResource()); + + } }