From da6414e45d777055e89f6c97e43b6a0b5f425b66 Mon Sep 17 00:00:00 2001 From: Josiah Noel <32279667+SentryMan@users.noreply.github.com> Date: Sun, 26 Oct 2025 12:21:09 -0400 Subject: [PATCH 1/2] closed --- .../java/io/avaje/http/client/DHttpClientContext.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java b/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java index 54ac9cf1..11541533 100644 --- a/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java +++ b/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java @@ -50,6 +50,8 @@ final class DHttpClientContext implements HttpClient, SpiHttpClient { private final LongAccumulator metricResMaxMicros = new LongAccumulator(Math::max, 0); private final Function errorHandler; + private boolean closed; + DHttpClientContext( java.net.http.HttpClient httpClient, String baseUrl, @@ -86,6 +88,11 @@ public T create(Class clientInterface, ClassLoader classLoader) { @Override public HttpClientRequest request() { + + if (closed) { + throw new IllegalStateException("HttpClient is closed"); + } + return retryHandler == null ? new DHttpClientRequest(this, requestTimeout) : new DHttpClientRequestWithRetry(this, requestTimeout, retryHandler); @@ -389,6 +396,7 @@ String maxResponseBody(String body) { @Override public void close() { + this.closed = true; if (Integer.getInteger("java.specification.version") >= 21) { try { MethodHandles.lookup() From a014a11a4be47ce1b5383abe7552685e2460ee26 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Mon, 27 Oct 2025 10:09:34 +1300 Subject: [PATCH 2/2] Remove extra whitespace --- .../src/main/java/io/avaje/http/client/DHttpClientContext.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java b/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java index 11541533..fc59922c 100644 --- a/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java +++ b/http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java @@ -88,11 +88,9 @@ public T create(Class clientInterface, ClassLoader classLoader) { @Override public HttpClientRequest request() { - if (closed) { throw new IllegalStateException("HttpClient is closed"); } - return retryHandler == null ? new DHttpClientRequest(this, requestTimeout) : new DHttpClientRequestWithRetry(this, requestTimeout, retryHandler);