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 sc...@apache.org on 2008/02/27 20:33:16 UTC

svn commit: r631687 - in /webservices/commons/trunk/modules/axiom/modules: axiom-api/src/main/java/org/apache/axiom/om/impl/builder/ axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/ axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/ axi...

Author: scheu
Date: Wed Feb 27 11:33:14 2008
New Revision: 631687

URL: http://svn.apache.org/viewvc?rev=631687&view=rev
Log:
WSCOMMONS-303
Contributor: Rich Scheuerle
Fix for NPE and SOAPFaultException revealed by Axis2 Continuum

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
    webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java?rev=631687&r1=631686&r2=631687&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java Wed Feb 27 11:33:14 2008
@@ -532,4 +532,8 @@
             throw new OMException(e);
         }
     }
+    
+    public boolean isLookahead() {
+        return lookAheadToken >= 0;
+    }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java?rev=631687&r1=631686&r2=631687&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilder.java Wed Feb 27 11:33:14 2008
@@ -202,6 +202,7 @@
      * @throws OMException
      */
     protected OMNode createOMElement() throws OMException {
+        
         OMElement node;
         String elementName = parser.getLocalName();
         if (lastNode == null) {
@@ -354,7 +355,6 @@
         } else if ((elementLevel == 3) &&
                 parent.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME) &&
                 elementName.equals(SOAPConstants.BODY_FAULT_LOCAL_NAME)) {
-
             // this is a headerblock
             element = soapFactory.createSOAPFault((SOAPBody) parent, this);
             processNamespaceData(element, false);
@@ -373,7 +373,6 @@
         } else if (elementLevel > 3 && processingFault) {
             element = builderHelper.handleEvent(parser, parent, elementLevel);
         } else {
-
             // this is neither of above. Just create an element
             element = soapFactory.createOMElement(elementName, null,
                                                   parent, this);

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=631687&r1=631686&r2=631687&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Wed Feb 27 11:33:14 2008
@@ -713,6 +713,11 @@
      * @return Returns reader.
      */
     private XMLStreamReader getXMLStreamReader(boolean cache) {
+        if (builder != null && this.builder instanceof StAXOMBuilder) {
+            if (((StAXOMBuilder) builder).isLookahead()) {
+                this.buildNext();
+            }
+        }
         // The om tree was built by hand and is already complete
         if ((builder == null) && done) {
             return new OMStAXWrapper(null, this, false);

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java?rev=631687&r1=631686&r2=631687&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPBodyImpl.java Wed Feb 27 11:33:14 2008
@@ -191,7 +191,9 @@
             lookAheadSuccessful = soapBuilder.lookahead();
             if (lookAheadSuccessful) {
                 this.lookAheadLocalName = soapBuilder.getName();
-                this.lookAheadNS = factory.createOMNamespace(soapBuilder.getNamespace(), 
+                String ns = soapBuilder.getNamespace();
+                ns = (ns == null) ? "" : ns;
+                this.lookAheadNS = factory.createOMNamespace(ns, 
                                                              soapBuilder.getPrefix());
             }
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org