Connection timeouts in JEP 321 (HTTP Client)

Michael McMahon michael.x.mcmahon at oracle.com
Wed Jul 25 08:30:26 UTC 2018


Hi Markus,

The API and implementation supports an overall response timeout through 
the method:

HttpRequest.Builder timeout​(Duration duration)

So, I don't think any application should be required to wait for 130 
seconds.
It does not currently have a timeout setting specific for connection 
setup though.
Maybe that is something which could be added in a future release.

- Michael.


On 24/07/2018, 19:34, Markus Peloquin wrote:
>
> Somebody pointed me at the upcoming HTTP client implementation, and 
> I'm sad to see that connection timeouts are missing from the 
> implementation (the old HTTP API). Is the absence of connection 
> timeouts intended or an oversight? I'd like to see it added, and it 
> looks like a simple change to me.
>
> http://openjdk.java.net/jeps/321
>
> http://mail.openjdk.java.net/pipermail/jdk-dev/2018-March/000996.html
>
>
> There are some environments (such as AWS VPCs), where connection 
> failures are only indicated by a connection timeout. This is because 
> ICMP 'Destination Unreachable' packets are often not forwarded to the 
> client (by load balancers, private links, etc) and there are 
> supposedly some security concerns with allowing them by default. Those 
> ICMP packets give immediate failures (net/host/protocol/port 
> unreachable), but timeouts are slow.
>
>
> The default timeout is unbounded in Java, though the TCP 
> implementation of the OS times-out connection establishment to around 
> 130 seconds.
>
>
> It looks like the implementation uses SocketChannel, which still 
> supports timeouts via chan.socket().connect(addr, timeout).
>
>
> Markus
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/net-dev/attachments/20180725/e6cfe381/attachment.html>


More information about the net-dev mailing list