On Tue, 6 Sep 2022 13:56:15 GMT, Conor Cleary <ccle...@openjdk.org> 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. src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java line 201: > 199: } > 200: HttpTimeoutException hte = new HttpTimeoutException("HTTP > connection idle, no active streams. Shutting down."); > 201: shutdown(hte); The implementation in `shutdown` has some code which logs errors/exception when `error` logging is enabled. Specifically: if (Log.errors()) { if (!(t instanceof EOFException) || isActive()) { Log.logError(t); The implementation of `Log.logError` logs the exception stacktrace as well as a message which says `ERROR:`. Should we add a specific check in the `shutdown` implementation to prevent logging exception stacktraces when a connection is being closed due to idle timeout and instead just log it as an informational message? ------------- PR: https://git.openjdk.org/jdk/pull/10183