diff --git a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java
index 81e3ca6015..ce1861576c 100644
--- a/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java
+++ b/spring-core/src/main/java/org/springframework/util/xml/StaxStreamXMLReader.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2013 the original author or authors.
+ * Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -217,11 +217,6 @@ class StaxStreamXMLReader extends AbstractStaxXMLReader {
}
private void handleCharacters() throws SAXException {
- if (getContentHandler() != null && this.reader.isWhiteSpace()) {
- getContentHandler().ignorableWhitespace(this.reader.getTextCharacters(),
- this.reader.getTextStart(), this.reader.getTextLength());
- return;
- }
if (XMLStreamConstants.CDATA == this.reader.getEventType() && getLexicalHandler() != null) {
getLexicalHandler().startCDATA();
}
diff --git a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java
index 2072b2e362..15ff0d4df5 100644
--- a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java
+++ b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxXMLReaderTestCase.java
@@ -16,15 +16,22 @@
package org.springframework.util.xml;
+import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.sax.SAXSource;
+import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.BDDMockito.*;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import org.w3c.dom.Node;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
@@ -103,6 +110,25 @@ public abstract class AbstractStaxXMLReaderTestCase {
verifyIdenticalInvocations(standardContentHandler, contentHandler);
}
+ @Test
+ public void whitespace() throws Exception {
+ String xml = " Some text ";
+
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+
+ AbstractStaxXMLReader staxXmlReader = createStaxXmlReader(
+ new ByteArrayInputStream(xml.getBytes("UTF-8")));
+
+ SAXSource source = new SAXSource(staxXmlReader, new InputSource());
+ DOMResult result = new DOMResult();
+
+ transformer.transform(source, result);
+
+ Node node1 = result.getNode().getFirstChild().getFirstChild();
+ assertEquals(" ", node1.getTextContent());
+ assertEquals(" Some text ", node1.getNextSibling().getTextContent());
+ }
+
@Test
public void lexicalHandler() throws Exception {
Resource testLexicalHandlerXml = new ClassPathResource("testLexicalHandler.xml", getClass());
@@ -130,7 +156,7 @@ public abstract class AbstractStaxXMLReaderTestCase {
verifyIdenticalInvocations(expectedLexicalHandler, actualLexicalHandler);
}
- private final LexicalHandler mockLexicalHandler() throws Exception {
+ private LexicalHandler mockLexicalHandler() throws Exception {
LexicalHandler lexicalHandler = mock(LexicalHandler.class);
willAnswer(new CopyCharsAnswer()).given(lexicalHandler).comment(any(char[].class), anyInt(), anyInt());
return lexicalHandler;
diff --git a/spring-core/src/test/resources/org/springframework/util/xml/testContentHandler.xml b/spring-core/src/test/resources/org/springframework/util/xml/testContentHandler.xml
index 680faab7ff..062b7b79b9 100644
--- a/spring-core/src/test/resources/org/springframework/util/xml/testContentHandler.xml
+++ b/spring-core/src/test/resources/org/springframework/util/xml/testContentHandler.xml
@@ -1,2 +1,2 @@
\ No newline at end of file
+ xmlns:prefix="http://www.greeting.com/goodbye/" h:person="Arjen"> Some text
\ No newline at end of file