From 5bfb1aef9e68d5f30d43db654e0be477258c78eb Mon Sep 17 00:00:00 2001 From: Stuart McCulloch Date: Tue, 14 Jul 2026 10:38:10 +0100 Subject: [PATCH] Disallow AgentTracer.forceRegister(null) Callers should pass NOOP_TRACER explicitly instead of null. --- .../java/com/datadog/debugger/agent/DebuggerTracerTest.java | 4 ++-- .../trace/bootstrap/instrumentation/api/AgentTracer.java | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/DebuggerTracerTest.java b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/DebuggerTracerTest.java index 00cc4a76de8..df303939e4b 100644 --- a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/DebuggerTracerTest.java +++ b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/agent/DebuggerTracerTest.java @@ -20,7 +20,7 @@ class DebuggerTracerTest { @AfterEach public void after() { - AgentTracer.forceRegister(null); + AgentTracer.forceRegister(AgentTracer.NOOP_TRACER); } @Test @@ -60,7 +60,7 @@ public void setError() { @Test public void noApi() { - AgentTracer.forceRegister(null); + AgentTracer.forceRegister(AgentTracer.NOOP_TRACER); ProbeStatusSink probeStatusSink = mock(ProbeStatusSink.class); DebuggerTracer debuggerTracer = new DebuggerTracer(probeStatusSink); DebuggerSpan span = diff --git a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java index 8ef7b90a838..8d882b882bc 100644 --- a/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java +++ b/internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java @@ -258,6 +258,9 @@ public static synchronized void registerIfAbsent(final TracerAPI tracer) { } public static synchronized void forceRegister(TracerAPI tracer) { + if (tracer == null) { + throw new IllegalArgumentException("tracer must not be null, use NOOP_TRACER instead"); + } provider = tracer; }