File tree Expand file tree Collapse file tree 2 files changed +42
-2
lines changed
exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal Expand file tree Collapse file tree 2 files changed +42
-2
lines changed Original file line number Diff line number Diff line change 3232import java .util .concurrent .CompletableFuture ;
3333import java .util .concurrent .ConcurrentLinkedQueue ;
3434import java .util .concurrent .ExecutorService ;
35- import java .util .concurrent .Executors ;
3635import java .util .concurrent .ThreadLocalRandom ;
3736import java .util .concurrent .TimeUnit ;
3837import java .util .function .Consumer ;
@@ -101,7 +100,7 @@ public final class JdkHttpSender implements HttpSender {
101100 .map (RetryPolicy ::getRetryExceptionPredicate )
102101 .orElse (JdkHttpSender ::isRetryableException );
103102 if (executorService == null ) {
104- this .executorService = Executors . newFixedThreadPool ( 5 );
103+ this .executorService = JdkHtttpUtil . newExecutor ( );
105104 this .managedExecutor = true ;
106105 } else {
107106 this .executorService = executorService ;
Original file line number Diff line number Diff line change 1+ /*
2+ * Copyright The OpenTelemetry Authors
3+ * SPDX-License-Identifier: Apache-2.0
4+ */
5+
6+ package io .opentelemetry .exporter .sender .jdk .internal ;
7+
8+ import io .opentelemetry .sdk .internal .DaemonThreadFactory ;
9+ import java .util .concurrent .ExecutorService ;
10+ import java .util .concurrent .SynchronousQueue ;
11+ import java .util .concurrent .ThreadPoolExecutor ;
12+ import java .util .concurrent .TimeUnit ;
13+
14+ /**
15+ * Utilities for JDK HTTP.
16+ *
17+ * <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
18+ * at any time.
19+ */
20+ public class JdkHtttpUtil {
21+ @ SuppressWarnings ("NonFinalStaticField" )
22+ private static boolean propagateContextForTestingInDispatcher = false ;
23+
24+ public static void setPropagateContextForTestingInDispatcher (
25+ boolean propagateContextForTestingInDispatcher ) {
26+ JdkHtttpUtil .propagateContextForTestingInDispatcher = propagateContextForTestingInDispatcher ;
27+ }
28+
29+ /** Returns an {@link ExecutorService} using daemon threads. */
30+ public static ExecutorService newExecutor () {
31+ return new ThreadPoolExecutor (
32+ 0 ,
33+ Integer .MAX_VALUE ,
34+ 60 ,
35+ TimeUnit .SECONDS ,
36+ new SynchronousQueue <>(),
37+ new DaemonThreadFactory ("jdkhttp-executor" , propagateContextForTestingInDispatcher ));
38+ }
39+
40+ private JdkHtttpUtil () {}
41+ }
You can’t perform that action at this time.
0 commit comments