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 2222
2323import static java .util .Objects .requireNonNull ;
2424
25- import java .lang .invoke .MethodHandle ;
2625import java .lang .invoke .MethodHandles ;
2726import java .lang .invoke .MethodType ;
2827
@@ -106,19 +105,7 @@ private java.net.http.HttpClient defaultClient() {
106105 if (executor != null ) {
107106 builder .executor (executor );
108107 } 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 ());
122109 }
123110 if (proxy != null ) {
124111 builder .proxy (proxy );
@@ -138,6 +125,17 @@ private java.net.http.HttpClient defaultClient() {
138125 return builder .build ();
139126 }
140127
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+
141139 /**
142140 * Create a reasonable default BodyAdapter if avaje-jsonb or Jackson are present.
143141 */
You can’t perform that action at this time.
0 commit comments