From d6312183c95ece81ab8786bacd7a733c4152f7ff Mon Sep 17 00:00:00 2001 From: matsumo-and Date: Wed, 13 May 2026 00:39:28 +0900 Subject: [PATCH] Fix NPE in JVMFlagAccess.setValue when getStringFlag returns null On some platforms (e.g. Apple Silicon / aarch64), getStringFlag returns null for flags like OnError and OnOutOfMemoryError because they are not accessible via the native JVM flag API. Calling .equals() on the null result causes a NullPointerException. Replace with Objects.equals to handle null safely. Signed-off-by: matsumo-and --- .../src/main/java/datadog/crashtracking/Initializer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java index 0aeca69ed00..8312c60c97e 100644 --- a/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java +++ b/dd-java-agent/agent-crashtracking/src/main/java/datadog/crashtracking/Initializer.java @@ -17,6 +17,7 @@ import java.net.URL; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.StringTokenizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,7 +47,7 @@ public String getValue(String flagName) { @Override public boolean setValue(String flagName, String value) { flags.setStringFlag(flagName, value); - return flags.getStringFlag(flagName).equals(value); + return Objects.equals(flags.getStringFlag(flagName), value); } }