diff --git a/internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfig/Selector.java b/internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfig/Selector.java index acf396053fd..ac611751fa5 100644 --- a/internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfig/Selector.java +++ b/internal-api/src/main/java/datadog/trace/bootstrap/config/provider/stableconfig/Selector.java @@ -21,7 +21,9 @@ public Selector(Object yaml) { Map map = (Map) yaml; origin = (String) map.get("origin"); key = (String) map.get("key"); - matches = Collections.unmodifiableList((List) map.get("matches")); + List rawMatches = (List) map.get("matches"); + matches = + rawMatches != null ? Collections.unmodifiableList(rawMatches) : Collections.emptyList(); operator = (String) map.get("operator"); } diff --git a/internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/StableConfigParserTest.groovy b/internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/StableConfigParserTest.groovy index 4a0bbdbf39f..f99d681d062 100644 --- a/internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/StableConfigParserTest.groovy +++ b/internal-api/src/test/groovy/datadog/trace/bootstrap/config/provider/StableConfigParserTest.groovy @@ -42,6 +42,12 @@ apm_configuration_rules: matches: ["mysvc"] configuration: KEY_FOUR: "ignored" + - selectors: + - origin: process_arguments + key: "-Darg1" + operator: exists + configuration: + KEY_FIVE: "ignored" """ Files.write(filePath, yaml.getBytes()) StableConfigSource.StableConfig cfg = StableConfigParser.parse(filePath.toString())