File tree Expand file tree Collapse file tree 1 file changed +12
-14
lines changed
http-client/src/main/java/io/avaje/http/client Expand file tree Collapse file tree 1 file changed +12
-14
lines changed Original file line number Diff line number Diff line change 22
22
23
23
import static java .util .Objects .requireNonNull ;
24
24
25
- import java .lang .invoke .MethodHandle ;
26
25
import java .lang .invoke .MethodHandles ;
27
26
import java .lang .invoke .MethodType ;
28
27
@@ -106,19 +105,7 @@ private java.net.http.HttpClient defaultClient() {
106
105
if (executor != null ) {
107
106
builder .executor (executor );
108
107
} else if (Integer .getInteger ("java.specification.version" ) >= 21 ) {
109
- try {
110
- ExecutorService virtualExecutorService =
111
- (ExecutorService )
112
- MethodHandles .lookup ()
113
- .findStatic (
114
- Executors .class ,
115
- "newVirtualThreadPerTaskExecutor" ,
116
- MethodType .methodType (ExecutorService .class ))
117
- .invokeExact ();
118
- builder .executor (virtualExecutorService );
119
- } catch (Throwable t ) {
120
- // Impossible
121
- }
108
+ builder .executor (virtualThreadExecutor ());
122
109
}
123
110
if (proxy != null ) {
124
111
builder .proxy (proxy );
@@ -138,6 +125,17 @@ private java.net.http.HttpClient defaultClient() {
138
125
return builder .build ();
139
126
}
140
127
128
+ private static ExecutorService virtualThreadExecutor () {
129
+ try {
130
+ return (ExecutorService )
131
+ MethodHandles .lookup ()
132
+ .findStatic (Executors .class , "newVirtualThreadPerTaskExecutor" , MethodType .methodType (ExecutorService .class ))
133
+ .invokeExact ();
134
+ } catch (Throwable e ) {
135
+ return null ;
136
+ }
137
+ }
138
+
141
139
/**
142
140
* Create a reasonable default BodyAdapter if avaje-jsonb or Jackson are present.
143
141
*/
You can’t perform that action at this time.
0 commit comments