From 33308eff804cb67672e782dd14e59a2785993fd2 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Tue, 10 Oct 2017 16:02:43 -0400 Subject: [PATCH] Change visibility to protected This should bypass an issue with the parent class being loaded on a different classloader, resulting in an IllegalAccessError. --- .../com/datadoghq/agent/integration/DDAgentTracingHelper.java | 4 +++- .../main/java/com/datadoghq/trace/writer/DDAgentWriter.java | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/integrations/helpers/src/main/java/com/datadoghq/agent/integration/DDAgentTracingHelper.java b/dd-java-agent/integrations/helpers/src/main/java/com/datadoghq/agent/integration/DDAgentTracingHelper.java index 1b38b90b7e..7dbc778380 100644 --- a/dd-java-agent/integrations/helpers/src/main/java/com/datadoghq/agent/integration/DDAgentTracingHelper.java +++ b/dd-java-agent/integrations/helpers/src/main/java/com/datadoghq/agent/integration/DDAgentTracingHelper.java @@ -19,7 +19,9 @@ public abstract class DDAgentTracingHelper extends OpenTracingHelper { */ protected final Tracer tracer; - DDAgentTracingHelper(final Rule rule) { + // This is intentionally protected scope to avoid IllegalAccessError if on separate classloaders: + // https://stackoverflow.com/a/10538366 + protected DDAgentTracingHelper(final Rule rule) { super(rule); Tracer tracerResolved; try { diff --git a/dd-trace/src/main/java/com/datadoghq/trace/writer/DDAgentWriter.java b/dd-trace/src/main/java/com/datadoghq/trace/writer/DDAgentWriter.java index 6446924bbc..90854643fb 100644 --- a/dd-trace/src/main/java/com/datadoghq/trace/writer/DDAgentWriter.java +++ b/dd-trace/src/main/java/com/datadoghq/trace/writer/DDAgentWriter.java @@ -42,6 +42,7 @@ public class DDAgentWriter implements Writer { /** Scheduled thread pool, acting like a cron */ private final ScheduledExecutorService scheduledExecutor = Executors.newScheduledThreadPool(1); + // FIXME: Properly name these threads to better identify them as ours. /** Effective thread pool, where real logic is done */ private final ExecutorService executor = Executors.newSingleThreadExecutor();