diff --git a/dd-java-agent/instrumentation/servlet-common/src/main/java/datadog/trace/instrumentation/servlet/HttpServletResponseInstrumentation.java b/dd-java-agent/instrumentation/servlet-common/src/main/java/datadog/trace/instrumentation/servlet/HttpServletResponseInstrumentation.java index 7b7c1128e36..0336d67ed73 100644 --- a/dd-java-agent/instrumentation/servlet-common/src/main/java/datadog/trace/instrumentation/servlet/HttpServletResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet-common/src/main/java/datadog/trace/instrumentation/servlet/HttpServletResponseInstrumentation.java @@ -5,6 +5,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.returns; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; @@ -49,8 +50,13 @@ public void adviceTransformations(AdviceTransformation transformation) { namedOneOf("setHeader", "addHeader").and(takesArguments(String.class, String.class)), getClass().getName() + "$AddHeaderAdvice"); transformation.applyAdvice( - namedOneOf("encodeRedirectURL", "encodeURL"), getClass().getName() + "$EncodeURLAdvice"); - transformation.applyAdvice(named("sendRedirect"), getClass().getName() + "$SendRedirectAdvice"); + namedOneOf("encodeRedirectURL", "encodeURL") + .and(takesArgument(0, String.class)) + .and(returns(String.class)), + getClass().getName() + "$EncodeURLAdvice"); + transformation.applyAdvice( + named("sendRedirect").and(takesArgument(0, String.class)), + getClass().getName() + "$SendRedirectAdvice"); } public static class AddCookieAdvice { diff --git a/dd-java-agent/instrumentation/servlet/request-5/src/main/java/datadog/trace/instrumentation/servlet5/JakartaHttpServletResponseInstrumentation.java b/dd-java-agent/instrumentation/servlet/request-5/src/main/java/datadog/trace/instrumentation/servlet5/JakartaHttpServletResponseInstrumentation.java index 0046ff7070a..06878cb2b2a 100644 --- a/dd-java-agent/instrumentation/servlet/request-5/src/main/java/datadog/trace/instrumentation/servlet5/JakartaHttpServletResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/request-5/src/main/java/datadog/trace/instrumentation/servlet5/JakartaHttpServletResponseInstrumentation.java @@ -5,6 +5,8 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.namedOneOf; import static net.bytebuddy.matcher.ElementMatchers.not; +import static net.bytebuddy.matcher.ElementMatchers.returns; +import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import com.google.auto.service.AutoService; import datadog.trace.agent.tooling.Instrumenter; @@ -39,8 +41,13 @@ public void adviceTransformations(AdviceTransformation transformation) { transformation.applyAdvice( namedOneOf("setHeader", "addHeader"), getClass().getName() + "$AddHeaderAdvice"); transformation.applyAdvice( - namedOneOf("encodeRedirectURL", "encodeURL"), getClass().getName() + "$EncodeURLAdvice"); - transformation.applyAdvice(named("sendRedirect"), getClass().getName() + "$SendRedirectAdvice"); + namedOneOf("encodeRedirectURL", "encodeURL") + .and(takesArgument(0, String.class)) + .and(returns(String.class)), + getClass().getName() + "$EncodeURLAdvice"); + transformation.applyAdvice( + named("sendRedirect").and(takesArgument(0, String.class)), + getClass().getName() + "$SendRedirectAdvice"); } public static class AddCookieAdvice {