You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2010/04/25 16:09:34 UTC

svn commit: r937803 - in /webservices/commons/trunk/modules/axiom/modules: axiom-api/src/test/java/org/apache/axiom/soap/ axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/ axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/

Author: veithen
Date: Sun Apr 25 14:09:33 2010
New Revision: 937803

URL: http://svn.apache.org/viewvc?rev=937803&view=rev
Log:
WSCOMMONS-530: Realigned the DOOM SOAPFaultDetail implementation with LLOM so that all detail entries are serialized. Thanks to Dave Bryant for reporting this issue.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultDetailTestBase.java
    webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultDetailImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultDetailImpl.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultDetailTestBase.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultDetailTestBase.java?rev=937803&r1=937802&r2=937803&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultDetailTestBase.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultDetailTestBase.java Sun Apr 25 14:09:33 2010
@@ -19,6 +19,7 @@
 
 package org.apache.axiom.soap;
 
+import java.io.StringWriter;
 import java.util.Iterator;
 
 import org.apache.axiom.om.OMElement;
@@ -123,4 +124,18 @@ public class SOAPFaultDetailTestBase ext
                 "SOAP Fault Detail Test With Parser : - getAllDetailEntries method returns an itrator with more than two detail entries",
                 !iterator.hasNext());
     }
+    
+    // Regression test for WSCOMMONS-530
+    public void testSerialization() throws Exception {
+        soapFaultDetail.addDetailEntry(
+                omFactory.createOMElement("DetailEntry1", omNamespace));
+        soapFaultDetail.addDetailEntry(
+                omFactory.createOMElement("DetailEntry2", omNamespace));
+        StringWriter out = new StringWriter();
+        soapFaultDetail.serialize(out);
+        String msg = out.toString();
+        System.out.println(msg);
+        assertTrue(msg.indexOf("DetailEntry1") != -1);
+        assertTrue(msg.indexOf("DetailEntry2") != -1);
+    }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultDetailImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultDetailImpl.java?rev=937803&r1=937802&r2=937803&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultDetailImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultDetailImpl.java Sun Apr 25 14:09:33 2010
@@ -22,7 +22,6 @@ package org.apache.axiom.soap.impl.dom;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.axiom.om.impl.util.OMSerializerUtil;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.soap.SOAPFaultDetail;
@@ -75,34 +74,6 @@ public abstract class SOAPFaultDetailImp
                     new StreamWriterToContentHandlerConverter(writer));
         }
 
-        if (!cache) {
-            //No caching
-            if (this.firstChild != null) {
-                OMSerializerUtil.serializeStartpart(this, writer);
-                firstChild.internalSerialize(writer, false);
-                OMSerializerUtil.serializeEndpart(writer);
-            } else if (!this.done) {
-                if (builderType == PULL_TYPE_BUILDER) {
-                    OMSerializerUtil.serializeByPullStream(this, writer);
-                } else {
-                    OMSerializerUtil.serializeStartpart(this, writer);
-                    builder.setCache(cache);
-                    builder.next();
-                    OMSerializerUtil.serializeEndpart(writer);
-                }
-            } else {
-                OMSerializerUtil.serializeNormal(this, writer, cache);
-            }
-            // do not serialise the siblings
-
-
-        } else {
-            //Cached
-            OMSerializerUtil.serializeNormal(this, writer, cache);
-
-            // do not serialise the siblings
-        }
-
-
+        super.internalSerialize(writer, cache);
     }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultDetailImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultDetailImpl.java?rev=937803&r1=937802&r2=937803&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultDetailImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultDetailImpl.java Sun Apr 25 14:09:33 2010
@@ -21,17 +21,11 @@ package org.apache.axiom.soap.impl.dom.s
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.axiom.om.impl.util.OMSerializerUtil;
-import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.soap.SOAPProcessingException;
 import org.apache.axiom.soap.impl.dom.SOAPFaultDetailImpl;
 
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
 public class SOAP11FaultDetailImpl extends SOAPFaultDetailImpl {
 
     public SOAP11FaultDetailImpl(SOAPFault parent, SOAPFactory factory)
@@ -55,33 +49,4 @@ public class SOAP11FaultDetailImpl exten
                             "the parent. But received some other implementation");
         }
     }
-
-    public void internalSerialize(XMLStreamWriter writer, boolean cache)
-            throws XMLStreamException {
-
-        // select the builder
-        short builderType = PULL_TYPE_BUILDER;    // default is pull type
-        if (builder != null) {
-            builderType = this.builder.getBuilderType();
-        }
-        if ((builderType == PUSH_TYPE_BUILDER)
-                && (builder.getRegisteredContentHandler() == null)) {
-            builder.registerExternalContentHandler(
-                    new StreamWriterToContentHandlerConverter(writer));
-        }
-
-        OMSerializerUtil.serializeStartpart(this,
-                                            SOAP11Constants.SOAP_FAULT_DETAIL_LOCAL_NAME,
-                                            writer);
-
-        writer.writeCharacters(this.getText());
-
-
-        if (firstChild != null) {
-            firstChild.internalSerialize(writer, false);
-        }
-        writer.writeEndElement();
-    }
-
-
 }