Skip to content

Commit b5e35e3

Browse files
committed
unreflect close
1 parent 1101e43 commit b5e35e3

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

http-client/src/main/java/io/avaje/http/client/DHttpClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ private java.net.http.HttpClient defaultClient() {
104104
if (executor != null) {
105105
builder.executor(executor);
106106
} else if (Runtime.version().feature() >= 21) {
107-
builder.executor(HttpExecutor.getExecutor());
107+
builder.executor(JDK21Functions.getExecutor());
108108
}
109109
if (proxy != null) {
110110
builder.proxy(proxy);

http-client/src/main/java/io/avaje/http/client/DHttpClientContext.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import io.avaje.applog.AppLog;
44

5-
import java.lang.invoke.MethodHandles;
6-
import java.lang.invoke.MethodType;
75
import java.lang.reflect.Type;
86
import java.net.http.HttpHeaders;
97
import java.net.http.HttpRequest;
@@ -124,9 +122,8 @@ public HttpClient.Metrics metrics() {
124122
public HttpClient.Metrics metrics(boolean reset) {
125123
if (reset) {
126124
return new DMetrics(metricResTotal.sumThenReset(), metricResError.sumThenReset(), metricResBytes.sumThenReset(), metricResMicros.sumThenReset(), metricResMaxMicros.getThenReset());
127-
} else {
128-
return new DMetrics(metricResTotal.sum(), metricResError.sum(), metricResBytes.sum(), metricResMicros.sum(), metricResMaxMicros.get());
129125
}
126+
return new DMetrics(metricResTotal.sum(), metricResError.sum(), metricResBytes.sum(), metricResMicros.sum(), metricResMaxMicros.get());
130127
}
131128

132129
void metricsString(int stringBody) {
@@ -395,14 +392,6 @@ String maxResponseBody(String body) {
395392
@Override
396393
public void close() {
397394
this.closed = true;
398-
if (Integer.getInteger("java.specification.version") >= 21) {
399-
try {
400-
MethodHandles.lookup()
401-
.findVirtual(java.net.http.HttpClient.class, "close", MethodType.methodType(void.class))
402-
.invokeExact(httpClient);
403-
} catch (Throwable t) {
404-
throw new IllegalStateException("Failed to close java.net.http.HttpClient instance");
405-
}
406-
}
395+
JDK21Functions.closeClient(httpClient);
407396
}
408397
}

http-client/src/main/java/io/avaje/http/client/HttpExecutor.java renamed to http-client/src/main/java/io/avaje/http/client/JDK21Functions.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package io.avaje.http.client;
22

3+
import java.net.http.HttpClient;
34
import java.util.concurrent.ExecutorService;
45
import java.util.concurrent.Executors;
56

6-
final class HttpExecutor {
7-
private HttpExecutor() {}
8-
//only executed in tests
7+
final class JDK21Functions {
8+
private JDK21Functions() {}
9+
10+
// only executed in tests
911
static ExecutorService getExecutor() {
1012
return Executors.newCachedThreadPool();
1113
}
14+
15+
static void closeClient(HttpClient client) {
16+
client.close();
17+
}
1218
}

http-client/src/main/java21/io/avaje/http/client/HttpExecutor.java renamed to http-client/src/main/java21/io/avaje/http/client/JDK21Functions.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package io.avaje.http.client;
22

3+
import java.net.http.HttpClient;
34
import java.util.concurrent.ExecutorService;
45
import java.util.concurrent.Executors;
56

6-
final class HttpExecutor {
7-
private HttpExecutor() {}
7+
final class JDK21Functions {
8+
private JDK21Functions() {}
9+
810
static ExecutorService getExecutor() {
911
return Executors.newVirtualThreadPerTaskExecutor();
1012
}
13+
14+
static void closeClient(HttpClient client) {
15+
client.close();
16+
}
1117
}

0 commit comments

Comments
 (0)