diff --git a/dd-java-agent/instrumentation/play-ws/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java b/dd-java-agent/instrumentation/play-ws/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java index 9ec2142581..9695a3d92c 100644 --- a/dd-java-agent/instrumentation/play-ws/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java +++ b/dd-java-agent/instrumentation/play-ws/src/main/java/datadog/trace/instrumentation/playws/BasePlayWSClientInstrumentation.java @@ -1,5 +1,6 @@ package datadog.trace.instrumentation.playws; +import static datadog.trace.agent.tooling.ClassLoaderMatcher.classLoaderHasNoResources; import static datadog.trace.agent.tooling.bytebuddy.matcher.DDElementMatchers.hasInterface; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isMethod; @@ -20,6 +21,13 @@ public abstract class BasePlayWSClientInstrumentation extends Instrumenter.Defau super("play-ws"); } + @Override + public ElementMatcher classLoaderMatcher() { + // Optimization for expensive typeMatcher. + return not( + classLoaderHasNoResources("play/shaded/ahc/org/asynchttpclient/AsyncHttpClient.class")); + } + @Override public ElementMatcher typeMatcher() { // CachingAsyncHttpClient rejects overrides to AsyncHandler