You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/03/20 18:01:43 UTC
svn commit: r1302997 -
/cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
Author: dkulp
Date: Tue Mar 20 17:01:42 2012
New Revision: 1302997
URL: http://svn.apache.org/viewvc?rev=1302997&view=rev
Log:
[CXF-4183] Use our own DOM writer to avoid issues with Sun's.
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=1302997&r1=1302996&r2=1302997&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java Tue Mar 20 17:01:42 2012
@@ -52,6 +52,7 @@ import javax.xml.stream.events.StartElem
import javax.xml.stream.events.XMLEvent;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamSource;
@@ -248,6 +249,19 @@ public final class StaxUtils {
}
public static XMLStreamWriter createXMLStreamWriter(Result r) {
+ if (r instanceof DOMResult) {
+ //use our own DOM writer to avoid issues with Sun's
+ //version that doesn't support getNamespaceContext
+ DOMResult dr = (DOMResult)r;
+ Node nd = dr.getNode();
+ if (nd instanceof Document) {
+ return new W3CDOMStreamWriter((Document)nd);
+ } else if (nd instanceof Element) {
+ return new W3CDOMStreamWriter((Element)nd);
+ } else if (nd instanceof DocumentFragment) {
+ return new W3CDOMStreamWriter((DocumentFragment)nd);
+ }
+ }
XMLOutputFactory factory = getXMLOutputFactory();
try {
return factory.createXMLStreamWriter(r);