From d7add244795a01197ca2cbd7d19d7074fac61747 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Thu, 30 Jul 2026 15:49:45 -0400 Subject: [PATCH] Restrict freemarker ObjectWrapper instrumentation to 2.3.24+ Co-Authored-By: Claude Opus 5 (1M context) --- .../freemarker24/ObjectWrapperInstrumentation.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dd-java-agent/instrumentation/freemarker/freemarker-2.3.24/src/main/java/datadog/trace/instrumentation/freemarker24/ObjectWrapperInstrumentation.java b/dd-java-agent/instrumentation/freemarker/freemarker-2.3.24/src/main/java/datadog/trace/instrumentation/freemarker24/ObjectWrapperInstrumentation.java index 7e4c2036ecb..435c7e374ba 100644 --- a/dd-java-agent/instrumentation/freemarker/freemarker-2.3.24/src/main/java/datadog/trace/instrumentation/freemarker24/ObjectWrapperInstrumentation.java +++ b/dd-java-agent/instrumentation/freemarker/freemarker-2.3.24/src/main/java/datadog/trace/instrumentation/freemarker24/ObjectWrapperInstrumentation.java @@ -1,5 +1,6 @@ package datadog.trace.instrumentation.freemarker24; +import static datadog.trace.agent.tooling.bytebuddy.matcher.ClassLoaderMatchers.hasClassNamed; import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.returns; @@ -29,6 +30,14 @@ public ObjectWrapperInstrumentation() { super("freemarker"); } + static final ElementMatcher.Junction VERSION_POST_2_3_24 = + hasClassNamed("freemarker.cache.ByteArrayTemplateLoader"); + + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return VERSION_POST_2_3_24; + } + @Override public String hierarchyMarkerType() { return "freemarker.template.ObjectWrapper";