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 2011/01/31 21:29:47 UTC
svn commit: r1065752 - in
/cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source:
XMLStreamDataReader.java XMLStreamDataWriter.java
Author: dkulp
Date: Mon Jan 31 20:29:47 2011
New Revision: 1065752
URL: http://svn.apache.org/viewvc?rev=1065752&view=rev
Log:
Fix a problem with Dispatch<Document> not working correctly
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java?rev=1065752&r1=1065751&r2=1065752&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java Mon Jan 31 20:29:47 2011
@@ -97,16 +97,21 @@ public class XMLStreamDataReader impleme
input = StaxUtils.createXMLStreamReader(dom);
}
if (type != null) {
+ Object retVal = null;
if (SAXSource.class.isAssignableFrom(type)
|| StaxSource.class.isAssignableFrom(type)) {
- return new StaxSource(resetForStreaming(input));
+ retVal = new StaxSource(resetForStreaming(input));
} else if (StreamSource.class.isAssignableFrom(type)) {
- return new StreamSource(getInputStream(input));
+ retVal = new StreamSource(getInputStream(input));
} else if (XMLStreamReader.class.isAssignableFrom(type)) {
- return resetForStreaming(input);
+ retVal = resetForStreaming(input);
+ } else if (Element.class.isAssignableFrom(type)) {
+ retVal = dom == null ? read(input).getNode() : dom;
+ } else if (Document.class.isAssignableFrom(type)) {
+ retVal = dom == null ? read(input).getNode() : dom;
} else if (DataSource.class.isAssignableFrom(type)) {
final InputStream ins = getInputStream(input);
- return new DataSource() {
+ retVal = new DataSource() {
public String getContentType() {
return "text/xml";
}
@@ -124,9 +129,12 @@ public class XMLStreamDataReader impleme
input = resetForStreaming(input);
Object o = createStaxSource(input, type);
if (o != null) {
- return o;
+ retVal = o;
}
}
+ if (retVal != null) {
+ return retVal;
+ }
}
return dom == null ? read(input) : new DOMSource(dom);
} catch (IOException e) {
Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java?rev=1065752&r1=1065751&r2=1065752&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java Mon Jan 31 20:29:47 2011
@@ -30,6 +30,7 @@ import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.validation.Schema;
+import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Node;
@@ -72,7 +73,12 @@ public class XMLStreamDataWriter impleme
return;
}
}
- StaxUtils.writeNode(nd, writer, true);
+ if (nd instanceof Document) {
+ StaxUtils.writeDocument((Document)nd,
+ writer, false, true);
+ } else {
+ StaxUtils.writeNode(nd, writer, true);
+ }
} else {
Source s = (Source) obj;
if (s instanceof DOMSource