You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2008/07/28 20:28:44 UTC

svn commit: r680435 - in /cxf/trunk/common/common/src: main/java/org/apache/cxf/staxutils/StaxUtils.java test/java/org/apache/cxf/staxutils/StaxUtilsTest.java

Author: bimargulies
Date: Mon Jul 28 11:28:43 2008
New Revision: 680435

URL: http://svn.apache.org/viewvc?rev=680435&view=rev
Log:
Suppress PIs from Stax document copies if we're not writing the prolog.

Modified:
    cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
    cxf/trunk/common/common/src/test/java/org/apache/cxf/staxutils/StaxUtilsTest.java

Modified: cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=680435&r1=680434&r2=680435&view=diff
==============================================================================
--- cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java (original)
+++ cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java Mon Jul 28 11:28:43 2008
@@ -447,7 +447,10 @@
         NodeList rootChildren = d.getChildNodes();
         for (int rcx = 0; rcx < rootChildren.getLength(); rcx++) {
             Node rootChild = rootChildren.item(rcx);
-            writeNode(rootChild, writer, repairing);
+            // don't write PIs if we're not writing a prolog.
+            if (writeProlog || rootChild.getNodeType() == Node.ELEMENT_NODE) {
+                writeNode(rootChild, writer, repairing);
+            }
         }
 
         if (writeProlog) {

Modified: cxf/trunk/common/common/src/test/java/org/apache/cxf/staxutils/StaxUtilsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/test/java/org/apache/cxf/staxutils/StaxUtilsTest.java?rev=680435&r1=680434&r2=680435&view=diff
==============================================================================
--- cxf/trunk/common/common/src/test/java/org/apache/cxf/staxutils/StaxUtilsTest.java (original)
+++ cxf/trunk/common/common/src/test/java/org/apache/cxf/staxutils/StaxUtilsTest.java Mon Jul 28 11:28:43 2008
@@ -236,4 +236,19 @@
         assertTrue(output.contains("<?pi in='the sky'?>"));
         assertTrue(output.contains("<?e excl='gads'?>"));
     }
+    
+    @Test
+    public void testRootPInoProlog() throws Exception {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        Document doc = dbf.newDocumentBuilder().parse(getTestStream("./resources/rootMaterialTest.xml"));
+        StringWriter sw = new StringWriter();
+        XMLStreamWriter swriter = StaxUtils.createXMLStreamWriter(sw);
+        StaxUtils.writeDocument(doc, swriter, false, false);
+        swriter.flush();
+        swriter.close();
+        String output = sw.toString();
+        assertFalse(output.contains("<?pi in='the sky'?>"));
+        assertFalse(output.contains("<?e excl='gads'?>"));
+    }
 }