From fdc56c0e13c039c7867a48c2b8edbb48f9b5b2a2 Mon Sep 17 00:00:00 2001 From: Gary Huang Date: Wed, 6 Jun 2018 16:05:43 -0400 Subject: [PATCH] change the way classes are loaded so that classLoaderHasClasses would still work for the classes that are being instrumented and being matched at the same time. --- .../trace/agent/tooling/ClassLoaderMatcher.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java index cce2d90016..e9ad773c6d 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/ClassLoaderMatcher.java @@ -142,16 +142,14 @@ public class ClassLoaderMatcher { if (cache.containsKey(target)) { return cache.get(target); } - try { - for (final String name : names) { - Class.forName(name, false, target); + for (final String name : names) { + if (target.getResource(Utils.getResourceName(name)) == null) { + cache.put(target, false); + return false; } - cache.put(target, true); - return true; - } catch (final ClassNotFoundException e) { - cache.put(target, false); - return false; } + cache.put(target, true); + return true; } } return false;