You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2008/10/21 07:43:39 UTC

svn commit: r706524 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/ core/src/main/java/org/apache/synapse/core/axis2/ core/src/main/java/org/apache/synapse/endpoints/ transports/src/main/java/org/apache/synapse/transport/nhttp/

Author: indika
Date: Mon Oct 20 22:43:39 2008
New Revision: 706524

URL: http://svn.apache.org/viewvc?rev=706524&view=rev
Log:
Improve logging in the transport and endpoints level so that it make possible to correlate the request message with response, reactor events, etc…
Fix an issue with the SOAP utils 

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SOAPUtils.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
    synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.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=706524&r1=706523&r2=706524&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 Mon Oct 20 22:43:39 2008
@@ -301,6 +301,8 @@
     
     public static final String TEMP_FILE_SUFIX = "synapse.tempfile.sufix";
 
+    public static final String DOING_FAIL_OVER = "synapse.doing.failover";
+
     // Known transport error codes
     public static final int RCV_IO_ERROR_SENDING     = 101000;
     public static final int RCV_IO_ERROR_RECEIVING   = 101001;

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/Axis2FlexibleMEPClient.java Mon Oct 20 22:43:39 2008
@@ -115,6 +115,11 @@
         // we need to create the response to the original message later on
         MessageContext axisOutMsgCtx = cloneForSend(originalInMsgCtx);
 
+        if (log.isDebugEnabled()) {
+            log.debug("Message [Original Request Message ID : " + synapseOutMessageContext.getMessageID()
+                    + "]" + " [New Cloned Request Message ID : "
+                    + axisOutMsgCtx.getMessageID() + "]");
+        }
         // set all the details of the endpoint only to the cloned message context
         // so that we can use the original message context for resending through different endpoints
         if (endpoint != null) {

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SOAPUtils.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SOAPUtils.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SOAPUtils.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SOAPUtils.java Mon Oct 20 22:43:39 2008
@@ -19,28 +19,19 @@
 
 package org.apache.synapse.core.axis2;
 
-import java.util.Iterator;
-import java.util.List;
-
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
-import org.apache.axiom.soap.SOAPFault;
-import org.apache.axiom.soap.SOAPFaultCode;
-import org.apache.axiom.soap.SOAPFaultReason;
-import org.apache.axiom.soap.SOAPFaultText;
-import org.apache.axiom.soap.SOAPFaultValue;
-import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axiom.soap.*;
 import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.util.MessageHelper;
 
+import java.util.Iterator;
+import java.util.List;
+
 public class SOAPUtils {
 
     private static final Log log = LogFactory.getLog(SOAPUtils.class);
@@ -98,14 +89,14 @@
         if(log.isDebugEnabled()) {
             log.debug("convert SOAP11 to SOAP12");
         }
-
-        SOAPEnvelope oldEnvelope = axisOutMsgCtx.getEnvelope();
+        
+        SOAPEnvelope clonedOldEnv = MessageHelper.cloneSOAPEnvelope(axisOutMsgCtx.getEnvelope()); 
 
         SOAPFactory soap12Factory = OMAbstractFactory.getSOAP12Factory();
         SOAPEnvelope newEnvelope  = soap12Factory.getDefaultEnvelope();
 
-        if (oldEnvelope.getHeader() != null) {
-            Iterator itr = oldEnvelope.getHeader().getChildren();
+        if (clonedOldEnv.getHeader() != null) {
+            Iterator itr = clonedOldEnv.getHeader().getChildren();
             while (itr.hasNext()) {
                 OMNode omNode = (OMNode) itr.next();
 
@@ -155,11 +146,11 @@
 
             } // while (itr.hasNext())
 
-        } // if (oldEnvelope.getHeader() != null)
+        } // if (clonedOldEnv.getHeader() != null)
 
-        if (oldEnvelope.getBody() != null) {
+        if (clonedOldEnv.getBody() != null) {
 
-            Iterator itrBodyChildren = oldEnvelope.getBody().getChildren();
+            Iterator itrBodyChildren = clonedOldEnv.getBody().getChildren();
             while (itrBodyChildren.hasNext()) {
                 OMNode omNode = (OMNode) itrBodyChildren.next();
 
@@ -206,7 +197,7 @@
 
             } // while (itrBodyChildren.hasNext())
 
-        } //if (oldEnvelope.getBody() != null)
+        } //if (clonedOldEnv.getBody() != null)
 
         axisOutMsgCtx.setEnvelope(newEnvelope);
     }
@@ -238,12 +229,12 @@
             log.debug("convert SOAP12 to SOAP11");
         }
 
-        SOAPEnvelope oldEnvelope = axisOutMsgCtx.getEnvelope();
+        SOAPEnvelope clonedOldEnv = MessageHelper.cloneSOAPEnvelope(axisOutMsgCtx.getEnvelope()); 
 
         SOAPFactory soap11Factory = OMAbstractFactory.getSOAP11Factory();
         SOAPEnvelope newEnvelope  = soap11Factory.getDefaultEnvelope();
-        if (oldEnvelope.getHeader() != null) {
-            Iterator itr = oldEnvelope.getHeader().getChildren();
+        if (clonedOldEnv.getHeader() != null) {
+            Iterator itr = clonedOldEnv.getHeader().getChildren();
             while (itr.hasNext()) {
                 OMNode omNode = (OMNode) itr.next();
 
@@ -294,10 +285,10 @@
 
             } // while (itr.hasNext())
 
-        } // if (oldEnvelope.getHeader() != null)
+        } // if (clonedOldEnv.getHeader() != null)
 
-        if (oldEnvelope.getBody() != null) {
-            Iterator itr = oldEnvelope.getBody().getChildren();
+        if (clonedOldEnv.getBody() != null) {
+            Iterator itr = clonedOldEnv.getBody().getChildren();
             while (itr.hasNext()) {
                 OMNode omNode = (OMNode) itr.next();
 
@@ -347,9 +338,9 @@
 
             } // while (itr.hasNext())
 
-        } // if (oldEnvelope.getBody() != null)
+        } // if (clonedOldEnv.getBody() != null)
         
         axisOutMsgCtx.setEnvelope(newEnvelope);
     }
 
-}
\ No newline at end of file
+}

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/core/axis2/SynapseCallbackReceiver.java Mon Oct 20 22:43:39 2008
@@ -117,7 +117,8 @@
         if (messageID != null) {
             AxisCallback callback = callbackStore.remove(messageID);
             if (log.isDebugEnabled()) {
-                log.debug("Callback removed. Pending callbacks count : " + callbackStore.size());
+                log.debug("Callback removed for request message id : " + messageID +
+                        ". Pending callbacks count : " + callbackStore.size());
             }
 
             RelatesTo[] relates = messageCtx.getRelationships();
@@ -129,12 +130,12 @@
             }
             
             if (callback != null) {
-                handleMessage(messageCtx, ((AsyncCallback) callback).getSynapseOutMsgCtx());
+                handleMessage(messageID, messageCtx, ((AsyncCallback) callback).getSynapseOutMsgCtx());
                 
             } else {
                 // TODO invoke a generic synapse error handler for this message
                 log.warn("Synapse received a response for the request with message Id : " +
-                    messageID + " But a callback is not registered (anymore) to process this response");
+                        messageID + " But a callback is not registered (anymore) to process this response");
             }
 
         } else if (!messageCtx.isPropertyTrue(NhttpConstants.SC_ACCEPTED)){
@@ -146,13 +147,14 @@
     /**
      * Handle the response or error (during a failed send) message received for an outgoing request
      *
+     * @param messageID        Request message ID
      * @param response         the Axis2 MessageContext that has been received and has to be handled
      * @param synapseOutMsgCtx the corresponding (outgoing) Synapse MessageContext for the above
      *                         Axis2 MC, that holds Synapse specific information such as the error
      *                         handler stack and local properties etc.
      * @throws AxisFault       if the message cannot be processed
      */
-    private void handleMessage(MessageContext response,
+    private void handleMessage(String messageID ,MessageContext response,
         org.apache.synapse.MessageContext synapseOutMsgCtx) throws AxisFault {
 
         Endpoint endpoint = (Endpoint) synapseOutMsgCtx.getProperty(
@@ -190,6 +192,11 @@
                     response.getProperty(SynapseConstants.ERROR_DETAIL));
                 synapseOutMsgCtx.setProperty(SynapseConstants.ERROR_EXCEPTION, e);
 
+                if (log.isDebugEnabled()) {
+                    log.debug("[Failed Request Message ID : " + messageID + "]" +
+                            " [New to be Retried Request Message ID : " + synapseOutMsgCtx.getMessageID() + "]");
+                }                   
+
                 ((FaultHandler) faultStack.pop()).handleFault(synapseOutMsgCtx, null);
             }
 

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java Mon Oct 20 22:43:39 2008
@@ -407,4 +407,12 @@
                 " ' for JMX management", e);
         }
     }
+
+    protected void logOnChildEndpointFail(Endpoint endpoint, MessageContext synMessageContext) {
+        if (log.isDebugEnabled()) {
+            log.debug(this + " Detect a Failure in a child endpoint : " + endpoint);
+            log.debug(this + " Retry Attempt for Request with [Message ID : " + synMessageContext.getMessageID()
+                    + "], [To : " + synMessageContext.getTo() + "]");
+        }
+    }
 }

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java Mon Oct 20 22:43:39 2008
@@ -44,6 +44,9 @@
 
         boolean isARetry = false;
         if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == null) {
+            if (log.isDebugEnabled()) {
+                log.debug(this + " Building the SoapEnvelope");
+            }
             // If not yet a retry, we have to build the envelope since we need to support failover
             synCtx.getEnvelope().build();
         } else {
@@ -92,6 +95,8 @@
     }
 
     public void onChildEndpointFail(Endpoint endpoint, MessageContext synMessageContext) {
+
+        logOnChildEndpointFail(endpoint, synMessageContext);
         send(synMessageContext);
     }
 

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java Mon Oct 20 22:43:39 2008
@@ -115,10 +115,7 @@
 
     public void onChildEndpointFail(Endpoint endpoint, MessageContext synMessageContext) {
 
-        if (log.isDebugEnabled()) {
-            log.debug("child endpoind of load balance endpoint : " + getName() + " failed");
-        }
-
+        logOnChildEndpointFail(endpoint, synMessageContext);
         // resend (to a different endpoint) only if we support failover
         if (failover) {
             send(synMessageContext);

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java Mon Oct 20 22:43:39 2008
@@ -22,15 +22,12 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseConstants;
-import org.apache.synapse.endpoints.algorithms.AlgorithmContext;
-import org.apache.synapse.endpoints.algorithms.LoadbalanceAlgorithm;
 import org.apache.synapse.endpoints.dispatch.Dispatcher;
 import org.apache.synapse.endpoints.dispatch.SALSessions;
 import org.apache.synapse.endpoints.dispatch.SessionInformation;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 /**
  * SALoadbalanceEndpoint supports session affinity based load balancing. Each of this endpoint
@@ -154,6 +151,7 @@
      */
     public void onChildEndpointFail(Endpoint endpoint, MessageContext synCtx) {
 
+        logOnChildEndpointFail(endpoint, synCtx);
         Object o = synCtx.getProperty(
                 SynapseConstants.PROP_SAL_ENDPOINT_FIRST_MESSAGE_IN_SESSION);
 

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/Axis2HttpRequest.java Mon Oct 20 22:43:39 2008
@@ -240,7 +240,11 @@
     public void streamMessageContents() throws AxisFault {
 
         if (log.isDebugEnabled()) {
-            log.debug("start streaming outgoing http request");
+            log.debug("Start streaming outgoing http request : [Message ID : " + msgContext.getMessageID() + "]");
+            if (log.isTraceEnabled()) {
+                log.trace("Message [Request Message ID : " + msgContext.getMessageID() + "] " +
+                        "[Request Message Payload : [ " + msgContext.getEnvelope() + "]");
+            }
         }
 
         synchronized(this) {
@@ -324,4 +328,14 @@
     public void setSendingCompleted(boolean sendingCompleted) {
         this.sendingCompleted = sendingCompleted;
     }
+
+    @Override
+    public String toString() {
+        StringBuffer sb = new StringBuffer();
+        sb.append("Axis2Request [Message ID : ").append(msgContext.getMessageID()).append("] ");
+        sb.append("[Status Completed : ").append(isCompleted() ? "true" : "false").append("] ");
+        sb.append("[Status SendingCompleted : ").append(
+                isSendingCompleted() ? "true" : "false").append("]");
+        return sb.toString();
+    }
 }

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java Mon Oct 20 22:43:39 2008
@@ -279,16 +279,20 @@
      * @param conn the connection encountering the error
      * @return the updated error message
      */
-    private String getErrorMessage(String message, NHttpClientConnection conn) {
-        if (conn != null && conn instanceof DefaultNHttpClientConnection) {
-            DefaultNHttpClientConnection c = ((DefaultNHttpClientConnection) conn);
-            if (c.getRemoteAddress() != null) {
-                return message + " for : " + c.getRemoteAddress().getHostAddress() + ":" +
-                    c.getRemotePort();
-            }
-        }
-        return message;
-    }
+       private String getErrorMessage(String message, NHttpClientConnection conn) {
+           if (conn != null && conn instanceof DefaultNHttpClientConnection) {
+               DefaultNHttpClientConnection c = ((DefaultNHttpClientConnection) conn);
+               Axis2HttpRequest axis2Request = (Axis2HttpRequest)
+                       conn.getContext().getAttribute(AXIS2_HTTP_REQUEST);
+
+               if (c.getRemoteAddress() != null) {
+                   return message + " For : " + c.getRemoteAddress().getHostAddress() + ":" +
+                           c.getRemotePort() + (axis2Request != null ? "For Request : "
+                           + axis2Request : "");
+               }
+           }
+           return message;
+       }
 
     /**
      * check to see if http request-response has completed, if not completed yet,
@@ -359,6 +363,11 @@
 
                         SOAPEnvelope envelope = nioFaultMessageContext.getEnvelope();
 
+                        if (log.isDebugEnabled()) {
+                            log.debug("Sending Fault for Request with Message ID : "
+                                    + mc.getMessageID());
+                        }
+                        
                         nioFaultMessageContext.setProperty(
                             NhttpConstants.SENDING_FAULT, Boolean.TRUE);
                         nioFaultMessageContext.setProperty(
@@ -490,23 +499,27 @@
 
         // Have we sent out our request fully in the first place? if not, forget about it now..
         Axis2HttpRequest req = (Axis2HttpRequest) conn.getContext().getAttribute(AXIS2_HTTP_REQUEST);
-        if (req != null && !req.isSendingCompleted()) {
-            req.getMsgContext().setProperty(NhttpConstants.ERROR_CODE, NhttpConstants.SEND_ABORT);
-            req.setCompleted(true);                                              
-            SharedOutputBuffer outputBuffer = (SharedOutputBuffer)
-                conn.getContext().getAttribute(REQUEST_SOURCE_BUFFER);
-            if (outputBuffer != null) {
-                outputBuffer.shutdown();
+        
+        if (req != null) {
+            req.setCompleted(true);
+            if (log.isDebugEnabled()) {
+                log.debug("Response Received for Request : " + req);
             }
-            log.warn("Remote server aborted request being sent and replied : " + conn);
-            if (metrics != null) {
-                metrics.incrementFaultsSending(NhttpConstants.SEND_ABORT, req.getMsgContext());
+            if (!req.isSendingCompleted()) {
+                req.getMsgContext().setProperty(NhttpConstants.ERROR_CODE, NhttpConstants.SEND_ABORT);
+                req.setCompleted(true);
+                SharedOutputBuffer outputBuffer = (SharedOutputBuffer)
+                        conn.getContext().getAttribute(REQUEST_SOURCE_BUFFER);
+                if (outputBuffer != null) {
+                    outputBuffer.shutdown();
+                }
+                log.warn("Remote server aborted request being sent and replied : " + conn);
+                if (metrics != null) {
+                    metrics.incrementFaultsSending(NhttpConstants.SEND_ABORT, req.getMsgContext());
+                }
             }
         }
 
-        if (req != null) {
-            req.setCompleted(true);
-        }
 
         switch (response.getStatusLine().getStatusCode()) {
             case HttpStatus.SC_ACCEPTED : {
@@ -747,4 +760,4 @@
         }
         return null;
     }
-}
\ No newline at end of file
+}

Modified: synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.java?rev=706524&r1=706523&r2=706524&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.java (original)
+++ synapse/trunk/java/modules/transports/src/main/java/org/apache/synapse/transport/nhttp/LoggingNHttpClientHandler.java Mon Oct 20 22:43:39 2008
@@ -31,7 +31,7 @@
 import org.apache.http.nio.NHttpClientHandler;
 
 /**
- * Decorator class intended to transparently extend an {@link NHttpClientHandler} 
+ * Decorator class intended to transparently extend an {@link NHttpClientHandler}
  * with basic event logging capabilities using Commons Logging. 
  */
 public class LoggingNHttpClientHandler implements NHttpClientHandler {
@@ -87,14 +87,14 @@
 
     public void requestReady(final NHttpClientConnection conn) {
         if (this.log.isDebugEnabled()) {
-            this.log.debug("HTTP connection " + conn + ": Request ready");
+            this.log.debug("HTTP connection " + conn + ": Request ready" + getRequestMessageID(conn));
         }
         this.handler.requestReady(conn);
     }
 
     public void outputReady(final NHttpClientConnection conn, final ContentEncoder encoder) {
         if (this.log.isDebugEnabled()) {
-            this.log.debug("HTTP connection " + conn + ": Output ready");
+            this.log.debug("HTTP connection " + conn + ": Output ready" + getRequestMessageID(conn));
         }
         this.handler.outputReady(conn, encoder);
         if (this.log.isDebugEnabled()) {
@@ -105,7 +105,8 @@
     public void responseReceived(final NHttpClientConnection conn) {
         HttpResponse response = conn.getHttpResponse();
         if (this.log.isDebugEnabled()) {
-            this.log.debug("HTTP connection " + conn + ": " + response.getStatusLine());
+            this.log.debug("HTTP connection " + conn + " : "
+                    + response.getStatusLine() + getRequestMessageID(conn));
         }
         this.handler.responseReceived(conn);
         if (this.headerlog.isDebugEnabled()) {
@@ -119,7 +120,7 @@
 
     public void inputReady(final NHttpClientConnection conn, final ContentDecoder decoder) {
         if (this.log.isDebugEnabled()) {
-            this.log.debug("HTTP connection " + conn + ": Input ready");
+            this.log.debug("HTTP connection " + conn + ": Input ready" + getRequestMessageID(conn));
         }
         this.handler.inputReady(conn, decoder);
         if (this.log.isDebugEnabled()) {
@@ -129,9 +130,17 @@
 
     public void timeout(final NHttpClientConnection conn) {
         if (this.log.isDebugEnabled()) {
-            this.log.debug("HTTP connection " + conn + ": Timeout");
+            this.log.debug("HTTP connection " + conn + ": Timeout" + getRequestMessageID(conn));
         }
         this.handler.timeout(conn);
     }
 
+    private static String getRequestMessageID(final NHttpClientConnection conn) {
+        Axis2HttpRequest axis2Request = (Axis2HttpRequest)
+                conn.getContext().getAttribute(ClientHandler.AXIS2_HTTP_REQUEST);
+        if (axis2Request != null) {
+            return " [Request Message ID : " + axis2Request.getMsgContext().getMessageID() + "]";
+        }
+        return "";
+    }
 }
\ No newline at end of file