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]