diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizableData.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizableData.java index eecf7f7ee00..1481a9c9e06 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizableData.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizableData.java @@ -21,6 +21,7 @@ import java.util.Locale; import org.jspecify.annotations.Nullable; import org.springframework.core.env.PropertySource; +import org.springframework.util.Assert; /** * Value object that represents the data that can be used by a {@link SanitizingFunction}. @@ -38,7 +39,7 @@ public final class SanitizableData { private final @Nullable PropertySource propertySource; - private final @Nullable String key; + private final String key; private @Nullable String lowerCaseKey; @@ -50,7 +51,8 @@ public final class SanitizableData { * @param key the data key * @param value the data value */ - public SanitizableData(@Nullable PropertySource propertySource, @Nullable String key, @Nullable Object value) { + public SanitizableData(@Nullable PropertySource propertySource, String key, @Nullable Object value) { + Assert.notNull(key, "'key' must not be null"); this.propertySource = propertySource; this.key = key; this.value = value; @@ -69,7 +71,7 @@ public final class SanitizableData { * Return the key of the data. * @return the data key */ - public @Nullable String getKey() { + public String getKey() { return this.key; } @@ -78,9 +80,9 @@ public final class SanitizableData { * @return the key as a lowercase value * @since 3.5.0 */ - public @Nullable String getLowerCaseKey() { + public String getLowerCaseKey() { String result = this.lowerCaseKey; - if (result == null && this.key != null) { + if (result == null) { result = this.key.toLowerCase(Locale.getDefault()); this.lowerCaseKey = result; } diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizingFunction.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizingFunction.java index 89f1a5e47ef..2c140c3e43a 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizingFunction.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/SanitizingFunction.java @@ -399,13 +399,12 @@ public interface SanitizingFunction { Assert.notNull(predicate, "'predicate' must not be null"); Assert.notNull(value, "'value' must not be null"); String lowerCaseValue = value.toLowerCase(Locale.getDefault()); - return (data) -> nullSafeTest(data.getLowerCaseKey(), - (lowerCaseKey) -> predicate.test(lowerCaseKey, lowerCaseValue)); + return (data) -> predicate.test(data.getLowerCaseKey(), lowerCaseValue); } private Predicate onKey(Predicate predicate) { Assert.notNull(predicate, "'predicate' must not be null"); - return (data) -> nullSafeTest(data.getKey(), predicate); + return (data) -> predicate.test(data.getKey()); } private Predicate onValue(Predicate predicate) { diff --git a/module/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizingFunctionTests.java b/module/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizingFunctionTests.java index 03b4e5fe847..2ac5b39625c 100644 --- a/module/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizingFunctionTests.java +++ b/module/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/SanitizingFunctionTests.java @@ -136,7 +136,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "boot").has(unsanitizedValue()); assertThatApplyingToKey(function, "xspring").has(unsanitizedValue()); assertThatApplyingToKey(function, "springx").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -148,7 +147,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "boot").has(sanitizedValue()); assertThatApplyingToKey(function, "atest").has(sanitizedValue()); assertThatApplyingToKey(function, "bootx").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -160,7 +158,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "boot").has(sanitizedValue()); assertThatApplyingToKey(function, "beet").has(sanitizedValue()); assertThatApplyingToKey(function, "spring").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -171,7 +168,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "XtestX").has(sanitizedValue()); assertThatApplyingToKey(function, "YY").has(sanitizedValue()); assertThatApplyingToKey(function, "xy").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -182,7 +178,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "SPRING").has(sanitizedValue()); assertThatApplyingToKey(function, "BOOT").has(sanitizedValue()); assertThatApplyingToKey(function, "xspring").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -192,7 +187,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "spin").has(sanitizedValue()); assertThatApplyingToKey(function, "SPRING").has(unsanitizedValue()); assertThatApplyingToKey(function, "xspring").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -204,7 +198,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "BO").has(sanitizedValue()); assertThatApplyingToKey(function, "SPRING").has(unsanitizedValue()); assertThatApplyingToKey(function, "boot").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -213,7 +206,6 @@ class SanitizingFunctionTests { assertThatApplyingToKey(function, "spring").has(sanitizedValue()); assertThatApplyingToKey(function, "spin").has(sanitizedValue()); assertThatApplyingToKey(function, "boot").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -223,7 +215,6 @@ class SanitizingFunctionTests { assertThatApplyingToValue(function, "SPRING").has(sanitizedValue()); assertThatApplyingToValue(function, "boot").has(sanitizedValue()); assertThatApplyingToValue(function, "other").has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test @@ -281,7 +272,6 @@ class SanitizingFunctionTests { assertThatApplyingToValue(function, "spin").has(sanitizedValue()); assertThatApplyingToValue(function, "boot").has(unsanitizedValue()); assertThatApplyingToValue(function, 123).has(unsanitizedValue()); - assertThatApplyingToKey(function, null).has(unsanitizedValue()); } @Test