hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: Wrong "Connection" header behaviour
Date Thu, 19 Jul 2012 14:06:48 GMT
On Thu, 2012-07-19 at 12:44 +0300, Helbrass wrote:
> Good day!
> 
> Just discovered really strange behaviour from HttpCore NIO 4.2.1, not sure  
> if it's a bug or I'm just using it in a wrong way...
> 
> Steps to reproduce:
> 
> 1. use NoConnectionReuseStrategy
> 2. add ResponseConnControl to HttpProcessors
> 3. implement almost empty HttpAsyncResponseProducer
> 4. make a request using Chromium
> 5. ResponseConnControl line 86 will not find entity and will set  
> Connection header to keep-alive on line 100.
> 6. HttpAsyncService on line 552 will check ConnectionReuseStrategy and  
> will close connection.
> 
> So as a result we have Connection: keep-alive reported but connection  
> closed.
> Workaround is of course to set own Connection header and do not add  
> ResponseConnControl processor, but resulting code is quite messy...
> 

I believe your expectations are slightly off. Usually
ConnectionReuseStrategy implementations is expected to make a decision
whether or not the connection can be re-used based on the properties of
the response message passed as a parameter. NoConnectionReuseStrategy,
however, indiscriminately returns false in all cases regardless of
message composition, hence the problem you are facing. 

You should either manually add 'connection: close' header if connection
is not to be re-used and continue using DefaultConnectionReuseStrategy
or replace ResponseConnControl with a custom interceptor that always
adds 'connection: close' header.

Hope this helps

Oleg



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message