You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ro...@apache.org on 2007/12/13 05:09:48 UTC

svn commit: r603812 - /jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java

Author: rolandw
Date: Wed Dec 12 20:09:47 2007
New Revision: 603812

URL: http://svn.apache.org/viewvc?rev=603812&view=rev
Log:
fixed connection reuse bug, see HTTPCLIENT-711

Modified:
    jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java?rev=603812&r1=603811&r2=603812&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java Wed Dec 12 20:09:47 2007
@@ -373,13 +373,17 @@
                 if (followup == null) {
                     done = true;
                 } else {
-                    if (this.reuseStrategy.keepAlive(response, context)) {
+                    boolean reuse = reuseStrategy.keepAlive(response, context);
+                    if (reuse) {
                         LOG.debug("Connection kept alive");
                         // Make sure the response body is fully consumed, if present
                         HttpEntity entity = response.getEntity();
                         if (entity != null) {
                             entity.consumeContent();
                         }
+                        // entity consumed above is not an auto-release entity,
+                        // need to mark the connection re-usable explicitly
+                        managedConn.markReusable();
                     } else {
                         managedConn.close();
                     }