diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java
index c10128dcf..eb7f4a12d 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemReaderTests.java
@@ -47,6 +47,12 @@ public class StaxEventItemReaderTests {
// test xml input
private String xml = " testString ";
+ // test xml input
+ private String emptyXml = "";
+
+ // test xml input
+ private String missingXml = "foo";
+
private String fooXml = " testString ";
private String mixedXml = " testString ";
@@ -176,6 +182,27 @@ public class StaxEventItemReaderTests {
assertFalse(source.moveCursorToNextFragment(reader));
}
+ /**
+ * Empty document works OK.
+ */
+ @Test
+ public void testMoveCursorToNextFragmentOnEmpty() throws XMLStreamException, FactoryConfigurationError, IOException {
+ Resource resource = new ByteArrayResource(emptyXml.getBytes());
+ XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(resource.getInputStream());
+
+ assertFalse(source.moveCursorToNextFragment(reader));
+ }
+
+ /**
+ * Document with no fragments works OK.
+ */
+ @Test
+ public void testMoveCursorToNextFragmentOnMissing() throws XMLStreamException, FactoryConfigurationError, IOException {
+ Resource resource = new ByteArrayResource(missingXml.getBytes());
+ XMLEventReader reader = XMLInputFactory.newInstance().createXMLEventReader(resource.getInputStream());
+ assertFalse(source.moveCursorToNextFragment(reader));
+ }
+
/**
* Save restart data and restore from it.
*/