diff --git a/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java index 3a3356d485c..8b20da0c901 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java @@ -694,7 +694,13 @@ public class XStreamMarshaller extends AbstractMarshaller implements BeanClassLo @Override protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { try { - doMarshal(graph, new StaxWriter(new QNameMap(), streamWriter, this.nameCoder), null); + final StaxWriter writer; + if( streamDriver instanceof StaxDriver){ + writer = ((StaxDriver)streamDriver).createStaxWriter(streamWriter); + }else{ + writer = new StaxWriter( new QNameMap(),streamWriter, this.nameCoder); + } + doMarshal(graph,writer, null); } catch (XMLStreamException ex) { throw convertXStreamException(ex, true);