On Mon, 24 Oct 2022 16:44:15 GMT, Conor Cleary <[email protected]> wrote:

>> **Issue**
>> When using HTTP/2 with the HttpClient, it can often be necessary to close an 
>> idle Http2 Connection before a server sends a GOAWAY frame. For example, a 
>> server or cloud based tool could close a TCP connection silently when it is 
>> idle for too long resulting in ConnectionResetException being thrown by the 
>> HttpClient.
>> 
>> **Proposed Solution**
>> A new system property, `jdk.httpclient.idleConnectionTimeout`, was added and 
>> is used to specify in Milliseconds how long an idle connection (idle 
>> connections are those which have no currently active streams) for the 
>> HttpClient before the connection is closed.
>
> Conor Cleary has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   8288717: Updated test and property to use seconds

src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java line 
55:

> 53: 
> 54:     static final long KEEP_ALIVE = Utils.getIntegerNetProperty(
> 55:             "jdk.httpclient.keepalive.timeout", 600); // seconds

I thought we had agreed to revisit the default value in a follow up.

test/jdk/java/net/httpclient/http2/IdleConnectionTimeoutTest.java line 95:

> 93:             if (timeoutVal.equals("1")) {
> 94:                 hreq = 
> HttpRequest.newBuilder(timeoutUri).version(HTTP_2).GET().build();
> 95:                 sleepTime = 8000;

Do we really need to sleep for 8 seconds? would 4 work too?

-------------

PR: https://git.openjdk.org/jdk/pull/10183

Reply via email to