Author: olegk
Date: Mon Aug  8 13:29:32 2005
New Revision: 230876

URL: http://svn.apache.org/viewcvs?rev=230876&view=rev
Log:
PR #35944 (Connection is not released back to the pool if a runtime exception 
is thrown in HttpMethod#releaseConnection method)

Contributed by Oleg Kalnichevski
Reviewed by Ortwin Glück & Michael Becke

Modified:
    
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java
    
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java

Modified: 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java?rev=230876&r1=230875&r2=230876&view=diff
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java
 Mon Aug  8 13:29:32 2005
@@ -869,8 +869,11 @@
     public boolean isResponseAvailable() 
         throws IOException {
         LOG.trace("enter HttpConnection.isResponseAvailable()");
-        assertOpen();
-        return this.inputStream.available() > 0;
+        if (this.isOpen) {
+            return this.inputStream.available() > 0;
+        } else {
+            return false;
+        }
     }
 
     /**

Modified: 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java?rev=230876&r1=230875&r2=230876&view=diff
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
 Mon Aug  8 13:29:32 2005
@@ -1071,19 +1071,15 @@
      * @since 2.0
      */
     public void releaseConnection() {
-
-        if (responseStream != null) {
-            try {
-                // FYI - this may indirectly invoke responseBodyConsumed.
-                responseStream.close();
-            } catch (IOException e) {
-                // the connection may not have been released, let's make sure
-                ensureConnectionRelease();
+        try {
+            if (this.responseStream != null) {
+                try {
+                    // FYI - this may indirectly invoke responseBodyConsumed.
+                    this.responseStream.close();
+                } catch (IOException ignore) {
+                }
             }
-        } else {
-            // Make sure the connection has been released. If the response 
-            // stream has not been set, this is the only way to release the 
-            // connection. 
+        } finally {
             ensureConnectionRelease();
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to