From bf6162c180c977fb2b776d5cf78517aa21e5df36 Mon Sep 17 00:00:00 2001 From: Andrea Marziali Date: Mon, 10 Feb 2025 11:56:27 +0100 Subject: [PATCH] Muzzle: do not generate references for primitive arrays in method body --- .../datadog/trace/agent/tooling/muzzle/ReferenceCreator.java | 3 +++ .../datadog/trace/agent/tooling/muzzle/TestAdviceClasses.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java index e2052c546c3..a43d1195918 100644 --- a/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java +++ b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/muzzle/ReferenceCreator.java @@ -390,6 +390,9 @@ public void visitMethodInsn( @Override public void visitTypeInsn(final int opcode, final String stype) { + if (ignoreReference(stype)) { + return; + } Type type = underlyingType(Type.getObjectType(stype)); if (ignoreReference(type.getInternalName())) { diff --git a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestAdviceClasses.java b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestAdviceClasses.java index 2d44c7de6b0..5ee1bb20ef2 100644 --- a/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestAdviceClasses.java +++ b/dd-java-agent/agent-tooling/src/test/java/datadog/trace/agent/tooling/muzzle/TestAdviceClasses.java @@ -16,6 +16,10 @@ public static void methodBodyAdvice() { a.b.aMethodWithArrays(new String[0]); B.aStaticMethod(); A.staticB.aMethod("bar"); + Object barr = new byte[0]; + if (barr instanceof byte[]) { + barr = null; + } } public static class A {