diff --git a/org.springframework.core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java b/org.springframework.core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java index 9fdd05ae7a82cc3a782427d4462551f3aea171dd..92c3176495bbd2aac23dcbe81ebe46a2a419b961 100644 --- a/org.springframework.core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java +++ b/org.springframework.core/src/main/java/org/springframework/util/xml/StaxEventXMLReader.java @@ -80,7 +80,7 @@ class StaxEventXMLReader extends AbstractStaxXMLReader { StaxEventXMLReader(XMLEventReader reader) { try { XMLEvent event = reader.peek(); - if (event == null || !(event.isStartDocument() || event.isStartElement())) { + if (event != null && !(event.isStartDocument() || event.isStartElement())) { throw new IllegalStateException("XMLEventReader not at start of document or element"); } } @@ -146,7 +146,7 @@ class StaxEventXMLReader extends AbstractStaxXMLReader { break; } } - if (!documentEnded) { + if (documentStarted && !documentEnded) { handleEndDocument(); } @@ -169,19 +169,19 @@ class StaxEventXMLReader extends AbstractStaxXMLReader { getContentHandler().setDocumentLocator(new Locator2() { public int getColumnNumber() { - return location.getColumnNumber(); + return location != null ? location.getColumnNumber() : -1; } public int getLineNumber() { - return location.getLineNumber(); + return location != null ? location.getLineNumber() : -1; } public String getPublicId() { - return location.getPublicId(); + return location != null ? location.getPublicId() : null; } public String getSystemId() { - return location.getSystemId(); + return location != null ? location.getSystemId() : null; } public String getXMLVersion() { diff --git a/org.springframework.core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java b/org.springframework.core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java index 035fa54fa4df27fa9d6c79e79e1b1a8e04ad6056..71627606c41d5d523d92b3af7845e4f4edcd9380 100644 --- a/org.springframework.core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java +++ b/org.springframework.core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java @@ -143,19 +143,19 @@ class StaxStreamXMLReader extends AbstractStaxXMLReader { getContentHandler().setDocumentLocator(new Locator2() { public int getColumnNumber() { - return location.getColumnNumber(); + return location != null ? location.getColumnNumber() : -1; } public int getLineNumber() { - return location.getLineNumber(); + return location != null ? location.getLineNumber() : -1; } public String getPublicId() { - return location.getPublicId(); + return location != null ? location.getPublicId() : null; } public String getSystemId() { - return location.getSystemId(); + return location != null ? location.getSystemId() : null; } public String getXMLVersion() {