Hi,

I think you may be seeing the same issue as 
https://issues.apache.org/jira/browse/HTTPCLIENT-2221, although in a slightly 
different way.
https://github.com/apache/httpcomponents-client/pull/371

If the socket isn't closed, it's possible that the response has been drained, 
and the connection is still pooled awaiting reuse. In the 
response.getEntity().close() case, it's bypassing the response draining 
code-path, and closing the socket. Once the above commit has been released, 
both codepaths will produce the same behavior, and I suspect in your case 
neither will close sockets as they're meant to be reused later on. Connection 
reuse can be configured/disabled if you prefer, such that closing the 
response/entity/stream will close the socket in all cases.

-ck

On Thu, Jul 7, 2022, at 13:58, Gordon Ross wrote:
> I’m using HttpClient 5.1.3 and I’m having problems with the underlying socket 
> not closing. This problem only occurs if I call 
> response.getEntity().getContent()
> 
> If I only call response.getEntity() the underlying socket gets closed fine.
> 
> I’ve tried doing the bare minimum of:
> 
> InputStream is = response.getEntity().getContent();
> is.close();
> response.close();
> 
> But even with this, the underlying socket remains open.
> 
> I’ve tried looking at the samples and I can’t see I’m doing anything 
> different. What am I missing?
> 
> 
> Gordon Ross (he/him)
> Collaboration Tools Team
> University Information Services
> University of Cambridge
> 
> While it suits me to email outside normal working hours, I do not expect a 
> response outside your own.
> 

Reply via email to