diff --git a/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java b/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java index aeed325c364..3c8fa72c2e5 100644 --- a/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java +++ b/context/src/main/java/io/opentelemetry/context/StrictContextStorage.java @@ -252,6 +252,7 @@ static PendingScopes create() { thread.setName("weak-ref-cleaner-strictcontextstorage"); thread.setPriority(Thread.MIN_PRIORITY); thread.setDaemon(true); + thread.setContextClassLoader(null); thread.start(); } diff --git a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/LeakDetectingSpanProcessor.java b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/LeakDetectingSpanProcessor.java index 8fd7b68ce34..9adcba424da 100644 --- a/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/LeakDetectingSpanProcessor.java +++ b/sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/trace/LeakDetectingSpanProcessor.java @@ -87,6 +87,7 @@ private static PendingSpans create(BiConsumer reporter) { thread.setName("weak-ref-cleaner-leakingspandetector"); thread.setPriority(Thread.MIN_PRIORITY); thread.setDaemon(true); + thread.setContextClassLoader(null); thread.start(); return pendingSpans; } diff --git a/sdk/common/src/main/java/io/opentelemetry/sdk/internal/DaemonThreadFactory.java b/sdk/common/src/main/java/io/opentelemetry/sdk/internal/DaemonThreadFactory.java index e8f75abe40f..b09585663c4 100644 --- a/sdk/common/src/main/java/io/opentelemetry/sdk/internal/DaemonThreadFactory.java +++ b/sdk/common/src/main/java/io/opentelemetry/sdk/internal/DaemonThreadFactory.java @@ -48,6 +48,7 @@ public Thread newThread(Runnable runnable) { try { t.setDaemon(true); t.setName(namePrefix + "-" + counter.incrementAndGet()); + t.setContextClassLoader(null); } catch (SecurityException e) { // Well, we tried. }