Author: keithc
Date: Tue Dec 18 20:17:30 2007
New Revision: 605417

URL: http://svn.apache.org/viewvc?rev=605417&view=rev
Log:
Fixing Fault building when the response if application/xml


Modified:
    
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java

Modified: 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java?rev=605417&r1=605416&r2=605417&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/Utils.java
 Tue Dec 18 20:17:30 2007
@@ -21,6 +21,7 @@
 package org.apache.axis2.util;
 
 import org.apache.axiom.om.util.UUIDGenerator;
+import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFault;
 import org.apache.axis2.AxisFault;
@@ -471,19 +472,22 @@
         // Else, extract it from the SOAPBody
         if (result == null) {
             SOAPEnvelope envelope = messageContext.getEnvelope();
-            if (envelope == null || envelope.getBody() == null ||
-                envelope.getBody().getFault() == null) {
-                // Not going to be able to 
-                throw new IllegalArgumentException(
-                        "The MessageContext does not have an associated 
SOAPFault.");
+            SOAPFault soapFault;
+            SOAPBody soapBody;
+            if (envelope != null && (soapBody = envelope.getBody()) != null) {
+                if ((soapFault = soapBody.getFault()) != null) {
+                    return new AxisFault(soapFault, messageContext);
+                }
+                // If its a REST response the content is not a SOAP envelop 
and hence we will
+                // Have use the soap body as the exception
+                if (messageContext.isDoingREST() && soapBody.getFirstElement() 
!= null) {
+                    return new 
AxisFault(soapBody.getFirstElement().toString());
+                }
             }
-            SOAPFault soapFault = envelope.getBody().getFault();
-
-            // The AxisFault returned needs to have the MessageContext set on 
it so that 
-            // other programming models can potentially handle the fault with 
an 
-            // alternate deserialization.
-            result = new AxisFault(soapFault, messageContext);
+            // Not going to be able to
+            throw new IllegalArgumentException(
+                    "The MessageContext does not have an associated 
SOAPFault.");
         }
         return result;
-    }    
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to