From af67dfa72034ed4b4f4daa605380be5654e534e2 Mon Sep 17 00:00:00 2001 From: Brian Devins-Suresh Date: Mon, 24 Feb 2020 14:38:10 -0500 Subject: [PATCH] Need to cache the boolean. The list can be taken later as debug is expected to be slower --- .../trace/agent/tooling/Instrumenter.java | 4 ++-- .../agent/tooling/muzzle/ReferenceMatcher.java | 16 +++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java index 294724a1e3..57a7d6a666 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java @@ -135,9 +135,9 @@ public interface Instrumenter { if (null != muzzle) { final boolean isMatch = muzzle.matches(classLoader); if (!isMatch) { - final List mismatches = - muzzle.getMismatchedReferenceSources(classLoader); if (log.isDebugEnabled()) { + final List mismatches = + muzzle.getMismatchedReferenceSources(classLoader); log.debug( "Instrumentation muzzled: {} -- {} on {}", instrumentationNames, diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java index 4997dc98d4..b86acfbc3e 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceMatcher.java @@ -22,9 +22,8 @@ import net.bytebuddy.pool.TypePool; /** Matches a set of references against a classloader. */ @Slf4j -public class ReferenceMatcher - implements WeakMap.ValueSupplier> { - private final WeakMap> mismatchCache = newWeakMap(); +public class ReferenceMatcher implements WeakMap.ValueSupplier { + private final WeakMap mismatchCache = newWeakMap(); private final Reference[] references; private final Set helperClassNames; @@ -52,6 +51,11 @@ public class ReferenceMatcher loader = Utils.getBootstrapProxy(); } + return mismatchCache.computeIfAbsent(loader, this); + } + + @Override + public Boolean get(final ClassLoader loader) { final List mismatches = new ArrayList<>(0); for (final Reference reference : references) { @@ -65,7 +69,6 @@ public class ReferenceMatcher } } - mismatchCache.put(loader, mismatches); return mismatches.size() == 0; } @@ -80,11 +83,6 @@ public class ReferenceMatcher loader = Utils.getBootstrapProxy(); } - return mismatchCache.computeIfAbsent(loader, this); - } - - @Override - public List get(final ClassLoader loader) { final List mismatches = new ArrayList<>(0); for (final Reference reference : references) {