From 3c0ba56d2c8d03fd3af9b0ca6bbbff4c4f1c59fa Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 2 Nov 2018 12:59:30 -0400 Subject: [PATCH] Make context maps 'global' for a given key class name This ensures that different instrumenters using same key class can see each others state --- .../trace/agent/tooling/context/MapBackedProvider.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/MapBackedProvider.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/MapBackedProvider.java index 557e2f0dfd..9a2f2df915 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/MapBackedProvider.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/context/MapBackedProvider.java @@ -11,7 +11,6 @@ import datadog.trace.bootstrap.WeakMap; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; -import java.util.UUID; import java.util.concurrent.atomic.AtomicReference; import jdk.internal.org.objectweb.asm.ClassWriter; import lombok.extern.slf4j.Slf4j; @@ -298,11 +297,7 @@ public class MapBackedProvider implements InstrumentationContextProvider { new HashMap<>(instrumenter.contextStore().size()); for (final String keyClassName : instrumenter.contextStore().keySet()) { final String dynamicClassName = - instrumenter.getClass().getName() - + "$ContextStore" - + keyClassName.replaceAll(".*([^\\.]+)$", "\\1") - + UUID.randomUUID().toString().replace('-', '_'); - + getClass().getName() + "$ContextStore" + keyClassName.replaceAll("\\.", "\\$"); dynamicClassNames.put(keyClassName, dynamicClassName); dynamicClasses.put(dynamicClassName, makeMapHolderClass(dynamicClassName)); }