You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2011/01/02 14:06:03 UTC

svn commit: r1054397 - in /webservices/commons/trunk/modules/axiom/modules: axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ axiom-testsuite/src/main/java/org/apache/axiom/ts/ axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/

Author: veithen
Date: Sun Jan  2 13:06:03 2011
New Revision: 1054397

URL: http://svn.apache.org/viewvc?rev=1054397&view=rev
Log:
DOOM: Fixed a logic error in ElementImpl#internalSerialize which causes serializeAndConsume to behave incorrectly.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestSuiteBuilder.java
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestSerializeToOutputStream.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=1054397&r1=1054396&r2=1054397&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java Sun Jan  2 13:06:03 2011
@@ -1076,7 +1076,7 @@ public class ElementImpl extends ParentN
     public void internalSerialize(XMLStreamWriter writer,
                                      boolean cache) throws XMLStreamException {
 
-        if (!cache) {
+        if (cache) {
             // in this case we don't care whether the elements are built or not
             // we just call the serializeAndConsume methods
             OMSerializerUtil.serializeStartpart(this, writer);

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestSuiteBuilder.java?rev=1054397&r1=1054396&r2=1054397&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestSuiteBuilder.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestSuiteBuilder.java Sun Jan  2 13:06:03 2011
@@ -81,7 +81,8 @@ public class AxiomTestSuiteBuilder {
         addTest(new org.apache.axiom.ts.om.element.TestSerializationWithTwoNonBuiltOMElements(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestSerializeAndConsumeWithIncompleteDescendant(metaFactory));
         for (int i=0; i<conformanceFiles.length; i++) {
-            addTest(new org.apache.axiom.ts.om.element.TestSerializeToOutputStream(metaFactory, conformanceFiles[i]));
+            addTest(new org.apache.axiom.ts.om.element.TestSerializeToOutputStream(metaFactory, conformanceFiles[i], true));
+            addTest(new org.apache.axiom.ts.om.element.TestSerializeToOutputStream(metaFactory, conformanceFiles[i], false));
         }
         addTest(new org.apache.axiom.ts.om.element.TestSetTextQName(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMElement(metaFactory));

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestSerializeToOutputStream.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestSerializeToOutputStream.java?rev=1054397&r1=1054396&r2=1054397&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestSerializeToOutputStream.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestSerializeToOutputStream.java Sun Jan  2 13:06:03 2011
@@ -27,6 +27,7 @@ import javax.xml.transform.TransformerFa
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.util.StAXParserConfiguration;
@@ -35,8 +36,12 @@ import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 
 public class TestSerializeToOutputStream extends ConformanceTestCase {
-    public TestSerializeToOutputStream(OMMetaFactory metaFactory, String file) {
+    private final boolean cache;
+    
+    public TestSerializeToOutputStream(OMMetaFactory metaFactory, String file, boolean cache) {
         super(metaFactory, file);
+        this.cache = cache;
+        setName(getName() + " [cache=" + cache + "]");
     }
 
     protected void runTest() throws Throwable {
@@ -58,10 +63,22 @@ public class TestSerializeToOutputStream
             OMXMLParserWrapper builder = metaFactory.createOMBuilder(metaFactory.getOMFactory(),
                     StAXParserConfiguration.PRESERVE_CDATA_SECTIONS, in);
             try {
+                OMElement element = builder.getDocumentElement();
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                builder.getDocumentElement().serialize(baos);
+                if (cache) {
+                    element.serialize(baos);
+                } else {
+                    element.serializeAndConsume(baos);
+                }
                 assertXMLIdentical(compareXML(new InputSource(new ByteArrayInputStream(control)),
                         new InputSource(new ByteArrayInputStream(baos.toByteArray()))), true);
+                if (cache) {
+                    assertTrue(element.isComplete());
+                } else {
+                    // TODO: need to investigate why assertConsumed is not working here
+                    assertFalse(element.isComplete());
+//                    assertConsumed(element);
+                }
             } finally {
                 builder.close();
             }