Author: uswick
Date: Fri Sep 30 09:35:48 2011
New Revision: 1177565

URL: http://svn.apache.org/viewvc?rev=1177565&view=rev
Log:
committing patch for SYNAPSE-802

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
    
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=1177565&r1=1177564&r2=1177565&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
 Fri Sep 30 09:35:48 2011
@@ -377,12 +377,13 @@ public final class SynapseConstants {
     public static final int SND_IO_ERROR_SENDING     = 101500;
     public static final int SND_IO_ERROR_RECEIVING   = 101501;
 
-    public static final int NHTTP_CONNECTION_FAILED  = 101503;
-    public static final int NHTTP_CONNECTION_TIMEOUT = 101504;
-    public static final int NHTTP_CONNECTION_CLOSED  = 101505;
-    public static final int NHTTP_PROTOCOL_VIOLATION = 101506;
-    public static final int NHTTP_CONNECT_CANCEL     = 101507;
-    public static final int NHTTP_CONNECT_TIMEOUT    = 101508;
+    public static final int NHTTP_CONNECTION_FAILED           = 101503;
+    public static final int NHTTP_CONNECTION_TIMEOUT          = 101504;
+    public static final int NHTTP_CONNECTION_CLOSED           = 101505;
+    public static final int NHTTP_PROTOCOL_VIOLATION          = 101506;
+    public static final int NHTTP_CONNECT_CANCEL              = 101507;
+    public static final int NHTTP_CONNECT_TIMEOUT             = 101508;
+    public static final int NHTTP_RESPONSE_PROCESSING_FAILURE = 101510;
 
     // Endpoint failures
     public static final int ENDPOINT_LB_NONE_READY   = 303000;

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java?rev=1177565&r1=1177564&r2=1177565&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientWorker.java
 Fri Sep 30 09:35:48 2011
@@ -31,6 +31,7 @@ import org.apache.axis2.description.Para
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.transport.TransportUtils;
 import org.apache.axis2.transport.http.HTTPTransportUtils;
+import org.apache.axis2.util.JavaUtils;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -251,7 +252,28 @@ public class ClientWorker implements Run
             try {
                 AxisEngine.receive(responseMsgCtx);
             } catch (AxisFault af) {
-                log.error("Fault processing response message through Axis2", 
af);
+                 // This will be reached if an exception is thrown within an 
Axis2 handler
+                String errorMessage = "Fault processing response message 
through Axis2: " +
+                        af.getMessage();
+
+                log.warn(errorMessage);
+                if (log.isDebugEnabled()) {
+                    log.debug(errorMessage, af);
+                    log.debug("Directly invoking SynapseCallbackReceiver after 
setting " +
+                            "error properties");
+                }
+
+                responseMsgCtx.setProperty(
+                        NhttpConstants.SENDING_FAULT, Boolean.TRUE);
+                responseMsgCtx.setProperty(
+                        NhttpConstants.ERROR_CODE, 
NhttpConstants.RESPONSE_PROCESSING_FAILURE);
+                responseMsgCtx.setProperty(
+                        NhttpConstants.ERROR_MESSAGE, 
errorMessage.split("\n")[0]);
+                responseMsgCtx.setProperty(
+                        NhttpConstants.ERROR_DETAIL, 
JavaUtils.stackToString(af));
+                responseMsgCtx.setProperty(
+                        NhttpConstants.ERROR_EXCEPTION, af);
+                
responseMsgCtx.getAxisOperation().getMessageReceiver().receive(responseMsgCtx);
             }
 
         } catch (AxisFault af) {

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java?rev=1177565&r1=1177564&r2=1177565&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/NhttpConstants.java
 Fri Sep 30 09:35:48 2011
@@ -90,13 +90,14 @@ public class NhttpConstants {
     public static final int SND_IO_ERROR_SENDING   = 101500;
     public static final int SND_IO_ERROR_RECEIVING = 101501;
 
-    public static final int CONNECTION_FAILED  = 101503;
-    public static final int CONNECTION_TIMEOUT = 101504;
-    public static final int CONNECTION_CLOSED  = 101505;
-    public static final int PROTOCOL_VIOLATION = 101506;
-    public static final int CONNECT_CANCEL     = 101507;
-    public static final int CONNECT_TIMEOUT    = 101508;
-    public static final int SEND_ABORT         = 101509;
+    public static final int CONNECTION_FAILED           = 101503;
+    public static final int CONNECTION_TIMEOUT          = 101504;
+    public static final int CONNECTION_CLOSED           = 101505;
+    public static final int PROTOCOL_VIOLATION          = 101506;
+    public static final int CONNECT_CANCEL              = 101507;
+    public static final int CONNECT_TIMEOUT             = 101508;
+    public static final int SEND_ABORT                  = 101509;
+    public static final int RESPONSE_PROCESSING_FAILURE = 101510;
     // ********** DO NOT CHANGE THESE UNLESS CORRESPONDING SYNAPSE CONSTANT 
ARE CHANGED ************
 
     public static final String REST_URL_POSTFIX = "REST_URL_POSTFIX";


Reply via email to