You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2012/12/12 11:35:17 UTC
svn commit: r1420609 - in /httpcomponents/httpclient/branches/4.2.x:
RELEASE_NOTES.txt
httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java
Author: olegk
Date: Wed Dec 12 10:35:16 2012
New Revision: 1420609
URL: http://svn.apache.org/viewvc?rev=1420609&view=rev
Log:
HTTPCLIENT-1273: DecompressingHttpClient does not automatically consume response content in case of an i/o, HTTP or runtime exception thrown by the decompressing protocol interceptor leading to a potential connection leak
Modified:
httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java
Modified: httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt?rev=1420609&r1=1420608&r2=1420609&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/branches/4.2.x/RELEASE_NOTES.txt Wed Dec 12 10:35:16 2012
@@ -1,6 +1,11 @@
Changes since 4.2.2
-------------------
+* [HTTPCLIENT-1273] DecompressingHttpClient does not automatically consume response
+ content in case of an i/o, HTTP or runtime exception thrown by the decompressing
+ protocol interceptor leading to a potential connection leak.
+ Contributed by Oleg Kalnichevski <olegk at apache.org>
+
* [HTTPCLIENT-1268] NTLM engine refactor fix, to correct a buffer overrun.
Contributed by Karl Wright <DaddyWri at gmail.com>
Modified: httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java?rev=1420609&r1=1420608&r2=1420609&view=diff
==============================================================================
--- httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java (original)
+++ httpcomponents/httpclient/branches/4.2.x/httpclient/src/main/java/org/apache/http/impl/client/DecompressingHttpClient.java Wed Dec 12 10:35:16 2012
@@ -135,13 +135,24 @@ public class DecompressingHttpClient imp
}
acceptEncodingInterceptor.process(wrapped, context);
HttpResponse response = backend.execute(target, wrapped, context);
- contentEncodingInterceptor.process(response, context);
- if (Boolean.TRUE.equals(context.getAttribute(ResponseContentEncoding.UNCOMPRESSED))) {
- response.removeHeaders("Content-Length");
- response.removeHeaders("Content-Encoding");
- response.removeHeaders("Content-MD5");
+ try {
+ contentEncodingInterceptor.process(response, context);
+ if (Boolean.TRUE.equals(context.getAttribute(ResponseContentEncoding.UNCOMPRESSED))) {
+ response.removeHeaders("Content-Length");
+ response.removeHeaders("Content-Encoding");
+ response.removeHeaders("Content-MD5");
+ }
+ return response;
+ } catch (HttpException ex) {
+ EntityUtils.consume(response.getEntity());
+ throw ex;
+ } catch (IOException ex) {
+ EntityUtils.consume(response.getEntity());
+ throw ex;
+ } catch (RuntimeException ex) {
+ EntityUtils.consume(response.getEntity());
+ throw ex;
}
- return response;
} catch (HttpException e) {
throw new ClientProtocolException(e);
}