From 576c9bccfbe6718fe8fe409bc165000bd1554589 Mon Sep 17 00:00:00 2001 From: Conor Cleary <ccleary@openjdk.org> Date: Tue, 31 Oct 2023 09:58:26 +0000 Subject: [PATCH] 8318492: Http2ClientImpl should attempt to close and remove connection in stop() Reviewed-by: dfuchs, jpai --- .../classes/jdk/internal/net/http/Http2ClientImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java index f77e1428f2c..50338f94c1d 100644 --- a/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java +++ b/src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java @@ -228,11 +228,11 @@ class Http2ClientImpl { connectionPoolLock.unlock(); } do { - connections.values().forEach(this::close); + connections.values().removeIf(this::close); } while (!connections.isEmpty()); } - private void close(Http2Connection h2c) { + private boolean close(Http2Connection h2c) { // close all streams try { h2c.closeAllStreams(); } catch (Throwable t) {} // send GOAWAY @@ -241,6 +241,8 @@ class Http2ClientImpl { try { h2c.shutdown(STOPPED); } catch (Throwable t) {} // double check and close any new streams try { h2c.closeAllStreams(); } catch (Throwable t) {} + // Allows for use of removeIf in stop() + return true; } HttpClientImpl client() {