Author: midon
Date: Tue Jul  1 17:03:22 2008
New Revision: 673239

URL: http://svn.apache.org/viewvc?rev=673239&view=rev
Log:
handle 500's with unknown xml docs

Modified:
    
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java

Modified: 
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java?rev=673239&r1=673238&r2=673239&view=diff
==============================================================================
--- 
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
 (original)
+++ 
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/httpbinding/HttpExternalService.java
 Tue Jul  1 17:03:22 2008
@@ -287,7 +287,7 @@
             Operation opDef = odeMex.getOperation();
             BindingOperation opBinding = 
portBinding.getBindingOperation(opDef.getName(), opDef.getInput().getName(), 
opDef.getOutput().getName());
             if (opDef.getFaults().isEmpty()) {
-                errmsg = "Operation has no fault. This 500 error will be 
considered as a failure.";
+                errmsg = "Operation " + opDef.getName() + " has no fault. This 
500 error will be considered as a failure.";
                 if (log.isDebugEnabled()) log.debug(errmsg);
                 odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, 
errmsg, HttpClientHelper.prepareDetailsElement(method));
             } else if (opBinding.getBindingFaults().isEmpty()) {
@@ -305,8 +305,12 @@
                     QName bodyName = new QName(bodyEl.getNamespaceURI(), 
bodyEl.getNodeName());
                     Fault faultDef = WsdlUtils.inferFault(opDef, bodyName);
 
-                    // is this fault bound with ODE extension?
-                    if 
(!WsdlUtils.isOdeFault(opBinding.getBindingFault(faultDef.getName()))) {
+                    if (faultDef == null) {
+                        errmsg = "Unknown Fault " + bodyName + " This 500 
error will be considered as a failure.";
+                        if (log.isDebugEnabled()) log.debug(errmsg);
+                        
odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, 
HttpClientHelper.prepareDetailsElement(method));
+                    } else if 
(!WsdlUtils.isOdeFault(opBinding.getBindingFault(faultDef.getName()))) {
+                        // is this fault bound with ODE extension?
                         errmsg = "Fault " + bodyName + " is not bound with " + 
new QName(Namespaces.ODE_HTTP_EXTENSION_NS, "fault") + ". This 500 error will 
be considered as a failure.";
                         if (log.isDebugEnabled()) log.debug(errmsg);
                         
odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, 
HttpClientHelper.prepareDetailsElement(method));
@@ -391,7 +395,7 @@
 
                     // handle headers
                     
httpMethodConverter.extractHttpResponseHeaders(odeResponse, method, 
outputMessage, opBinding.getBindingOutput());
-                    
+
                     try {
                         if (log.isInfoEnabled())
                             log.info("Response:\n" + 
DOMUtils.domToString(odeResponse.getMessage()));


Reply via email to