diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/UnopenedElementClosingEventWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/UnopenedElementClosingEventWriter.java
index f380f7150..03ddbe1b6 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/UnopenedElementClosingEventWriter.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/xml/stax/UnopenedElementClosingEventWriter.java
@@ -24,7 +24,6 @@ import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.events.EndElement;
import javax.xml.stream.events.XMLEvent;
import org.springframework.dao.DataAccessResourceFailureException;
@@ -51,18 +50,16 @@ public class UnopenedElementClosingEventWriter extends AbstractEventWriterWrappe
@Override
public void add(XMLEvent event) throws XMLStreamException {
if (isUnopenedElementCloseEvent(event)) {
- EndElement endElement = event.asEndElement();
- QName name = endElement.getName();
- String nsPrefix = !StringUtils.hasText(name.getPrefix()) ? "" : name.getPrefix() + ":";
+ QName element = unopenedElements.removeLast();
+ String nsPrefix = !StringUtils.hasText(element.getPrefix()) ? "" : element.getPrefix() + ":";
try {
super.flush();
- ioWriter.write("" + nsPrefix + name.getLocalPart() + ">");
+ ioWriter.write("" + nsPrefix + element.getLocalPart() + ">");
ioWriter.flush();
}
catch (IOException ioe) {
- throw new DataAccessResourceFailureException("Unable to close tag: " + name, ioe);
+ throw new DataAccessResourceFailureException("Unable to close tag: " + element, ioe);
}
- unopenedElements.removeLast();
} else {
super.add(event);
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemWriterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemWriterTests.java
index 1246f8d54..52845b423 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemWriterTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/xml/StaxEventItemWriterTests.java
@@ -13,6 +13,7 @@ import java.util.Collections;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.namespace.QName;
import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamException;
@@ -800,7 +801,7 @@ public class StaxEventItemWriterTests {
assertEquals("Wrong content: " + content,
"" +
- "", content);
+ "", content);
}
/**
@@ -824,7 +825,7 @@ public class StaxEventItemWriterTests {
"" +
"PRE-HEADERPOST-HEADER" +
"" +
- "PRE-FOOTERPOST-FOOTER" +
+ "PRE-FOOTERPOST-FOOTER" +
"", content);
}