On 26/05/2015 18:41, Rémy Maucherat wrote:

<snip/>

My understanding of your response was that you are now happy with that
change. Shout if that is not the case.

> As far as I am concerned, the tweaking of the request line looks wrong.
> 
>                  if (pos >= lastValid) {
> -                    if (useAvailableDataOnly) {
> -                        return false;
> +                    if (keptAlive) {
> +                        // Haven't read any request data yet so use the
> keep-alive
> +                        // timeout.
> +
> wrapper.setReadTimeout(wrapper.getEndpoint().getKeepAliveTimeout());
>                      }
> 
> Ok to change the timeout if you like (although for NIO2 it's meaningless if
> the operation is already pending),

The keepAliveTimeout is only changed in the case where:
- keep-alive is enabled
- there is no more data in the read buffer
- a non-blocking read is required for the first byte (or more) of the
   next request

In all other cases the soTimeout is used.

> but more importantly why is the "return false" gone ?

It was a left over from the attempt to make BIO support more connections
than it had threads by not doing an immediate read on a keep-alive
connection. It was no longer required. There is another "return false"
in the correct place in the next if block.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to