Index: C:/codehaus.org/xstream/scm/trunk/xstream/src/java/com/thoughtworks/xstream/io/xml/StaxDriver.java =================================================================== --- C:/codehaus.org/xstream/scm/trunk/xstream/src/java/com/thoughtworks/xstream/io/xml/StaxDriver.java (revision 844) +++ C:/codehaus.org/xstream/scm/trunk/xstream/src/java/com/thoughtworks/xstream/io/xml/StaxDriver.java (working copy) @@ -29,7 +29,6 @@ private QNameMap qnameMap; private XMLInputFactory inputFactory; private XMLOutputFactory outputFactory; - private boolean repairingNamespace = false; public StaxDriver() { this.qnameMap = new QNameMap(); @@ -39,11 +38,6 @@ this.qnameMap = qnameMap; } - public StaxDriver(QNameMap qnameMap, boolean repairingNamespace) { - this.qnameMap = qnameMap; - this.repairingNamespace = repairingNamespace; - } - public HierarchicalStreamReader createReader(Reader xml) { loadLibrary(); try { @@ -100,7 +94,7 @@ } public StaxWriter createStaxWriter(XMLStreamWriter out, boolean writeStartEndDocument) throws XMLStreamException { - return new StaxWriter(qnameMap, out, writeStartEndDocument, repairingNamespace); + return new StaxWriter(qnameMap, out, writeStartEndDocument, isRepairingNamespace()); } public StaxWriter createStaxWriter(XMLStreamWriter out) throws XMLStreamException { @@ -128,16 +122,21 @@ public XMLOutputFactory getOutputFactory() { if (outputFactory == null) { outputFactory = XMLOutputFactory.newInstance(); - outputFactory.setProperty("javax.xml.stream.isRepairingNamespaces", isRepairingNamespace() ? Boolean.TRUE : Boolean.FALSE); } return outputFactory; } public boolean isRepairingNamespace() { - return repairingNamespace; + return Boolean.TRUE.equals(getOutputFactory().getProperty( + XMLOutputFactory.IS_REPAIRING_NAMESPACES)); } + public void setRepairingNamespace(boolean repairing) { + getOutputFactory().setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, + repairing ? Boolean.TRUE : Boolean.FALSE); + } + // Implementation methods //------------------------------------------------------------------------- protected XMLStreamReader createParser(Reader xml) throws XMLStreamException { Index: C:/codehaus.org/xstream/scm/trunk/xstream/src/test/com/thoughtworks/xstream/io/xml/StaxWriter2Test.java =================================================================== --- C:/codehaus.org/xstream/scm/trunk/xstream/src/test/com/thoughtworks/xstream/io/xml/StaxWriter2Test.java (revision 844) +++ C:/codehaus.org/xstream/scm/trunk/xstream/src/test/com/thoughtworks/xstream/io/xml/StaxWriter2Test.java (working copy) @@ -91,7 +91,8 @@ } protected String marshall(QNameMap qnameMap, boolean repairNamespaceMode) { - StaxDriver staxDriver = new StaxDriver(qnameMap, repairNamespaceMode); + StaxDriver staxDriver = new StaxDriver(qnameMap); + staxDriver.setRepairingNamespace(repairNamespaceMode); XStream xstream = new XStream(staxDriver); return xstream.toXML(testInput); }