Author: veithen
Date: Sat May 15 19:15:43 2010
New Revision: 944701

URL: http://svn.apache.org/viewvc?rev=944701&view=rev
Log:
Take into account that the encoder may switch to completed even if bytesWritten 
== 0.

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

Modified: 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java?rev=944701&r1=944700&r2=944701&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
 (original)
+++ 
synapse/trunk/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ClientHandler.java
 Sat May 15 19:15:43 2010
@@ -555,11 +555,21 @@ public class ClientHandler implements NH
 
         try {
             int bytesWritten = outBuf.produceContent(encoder);
-            if (metrics != null && bytesWritten > 0) {
-                if (metrics.getLevel() == MetricsCollector.LEVEL_FULL) {
-                    metrics.incrementBytesSent(getMessageContext(conn), 
bytesWritten);
-                } else {
-                    metrics.incrementBytesSent(bytesWritten);
+            if (metrics != null) {
+                if (bytesWritten > 0) {
+                    if (metrics.getLevel() == MetricsCollector.LEVEL_FULL) {
+                        metrics.incrementBytesSent(getMessageContext(conn), 
bytesWritten);
+                    } else {
+                        metrics.incrementBytesSent(bytesWritten);
+                    }
+                    
+                    // TODO: executing this when metrics != 0 && bytesWritten 
> 0 seems strange;
+                    //       shouldn't the condition be encoder.isCompleted() 
?!?!?
+                    ClientConnectionDebug ccd = (ClientConnectionDebug)
+                            context.getAttribute(CLIENT_CONNECTION_DEBUG);
+                    if (ccd != null) {
+                        ccd.recordRequestCompletionTime();
+                    }
                 }
                 
                 if (encoder.isCompleted()) {
@@ -569,12 +579,6 @@ public class ClientHandler implements NH
                         metrics.incrementMessagesSent();
                     }
                 }
-
-                ClientConnectionDebug ccd = (ClientConnectionDebug)
-                        context.getAttribute(CLIENT_CONNECTION_DEBUG);
-                if (ccd != null) {
-                    ccd.recordRequestCompletionTime();
-                }
             }
 
         } catch (IOException e) {


Reply via email to