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:49:09 UTC

svn commit: r1065774 - in /cxf/branches/2.3.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java

Author: dkulp
Date: Mon Jan 31 20:49:09 2011
New Revision: 1065774

URL: http://svn.apache.org/viewvc?rev=1065774&view=rev
Log:
Merged revisions 1065752 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1065752 | dkulp | 2011-01-31 15:29:47 -0500 (Mon, 31 Jan 2011) | 1 line
  
  Fix a problem with Dispatch<Document> not working correctly
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java?rev=1065774&r1=1065773&r2=1065774&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataReader.java Mon Jan 31 20:49:09 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/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java?rev=1065774&r1=1065773&r2=1065774&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java Mon Jan 31 20:49:09 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