diff --git a/core/spring-boot-test/src/main/java/org/springframework/boot/test/util/TestPropertyValues.java b/core/spring-boot-test/src/main/java/org/springframework/boot/test/util/TestPropertyValues.java index 3c435bc411d..190b05ffb31 100644 --- a/core/spring-boot-test/src/main/java/org/springframework/boot/test/util/TestPropertyValues.java +++ b/core/spring-boot-test/src/main/java/org/springframework/boot/test/util/TestPropertyValues.java @@ -186,7 +186,7 @@ public final class TestPropertyValues { * @param call the call to make * @return the result of the call */ - public T applyToSystemProperties(Callable call) { + public T applyToSystemProperties(Callable call) { try (SystemPropertiesHandler handler = new SystemPropertiesHandler()) { return call.call(); } diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/EndpointMBean.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/EndpointMBean.java index 21e983a96fd..38f213d296c 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/EndpointMBean.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/EndpointMBean.java @@ -55,7 +55,7 @@ public class EndpointMBean implements DynamicMBean { private final JmxOperationResponseMapper responseMapper; - private final ClassLoader classLoader; + private final @Nullable ClassLoader classLoader; private final ExposableJmxEndpoint endpoint; @@ -63,7 +63,8 @@ public class EndpointMBean implements DynamicMBean { private final Map operations; - EndpointMBean(JmxOperationResponseMapper responseMapper, ClassLoader classLoader, ExposableJmxEndpoint endpoint) { + EndpointMBean(JmxOperationResponseMapper responseMapper, @Nullable ClassLoader classLoader, + ExposableJmxEndpoint endpoint) { Assert.notNull(responseMapper, "'responseMapper' must not be null"); Assert.notNull(endpoint, "'endpoint' must not be null"); this.responseMapper = responseMapper; diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/JacksonJmxOperationResponseMapper.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/JacksonJmxOperationResponseMapper.java index ef074123d1d..986b8da05a1 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/JacksonJmxOperationResponseMapper.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/jmx/JacksonJmxOperationResponseMapper.java @@ -24,6 +24,8 @@ import org.jspecify.annotations.Nullable; import tools.jackson.databind.JavaType; import tools.jackson.databind.ObjectMapper; +import org.springframework.lang.Contract; + /** * {@link JmxOperationResponseMapper} that delegates to a Jackson {@link ObjectMapper} to * return a JSON response. @@ -58,6 +60,7 @@ public class JacksonJmxOperationResponseMapper implements JmxOperationResponseMa } @Override + @Contract("!null -> !null") public @Nullable Object mapResponse(@Nullable Object response) { if (response == null) { return null; diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/ServletEndpointRegistrar.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/ServletEndpointRegistrar.java index c0f82855790..b6a8c3f075b 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/ServletEndpointRegistrar.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/ServletEndpointRegistrar.java @@ -65,11 +65,11 @@ public class ServletEndpointRegistrar implements ServletContextInitializer { private final EndpointAccessResolver endpointAccessResolver; - public ServletEndpointRegistrar(String basePath, Collection servletEndpoints) { + public ServletEndpointRegistrar(@Nullable String basePath, Collection servletEndpoints) { this(basePath, servletEndpoints, (endpointId, defaultAccess) -> Access.NONE); } - public ServletEndpointRegistrar(String basePath, Collection servletEndpoints, + public ServletEndpointRegistrar(@Nullable String basePath, Collection servletEndpoints, EndpointAccessResolver endpointAccessResolver) { Assert.notNull(servletEndpoints, "'servletEndpoints' must not be null"); this.basePath = cleanBasePath(basePath); diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ControllerEndpointDiscoverer.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ControllerEndpointDiscoverer.java index d519abd2f9b..57cb5687c19 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ControllerEndpointDiscoverer.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ControllerEndpointDiscoverer.java @@ -53,7 +53,7 @@ import org.springframework.core.annotation.MergedAnnotations.SearchStrategy; public class ControllerEndpointDiscoverer extends EndpointDiscoverer implements ControllerEndpointsSupplier { - private final List endpointPathMappers; + private final @Nullable List endpointPathMappers; /** * Create a new {@link ControllerEndpointDiscoverer} instance. @@ -61,7 +61,8 @@ public class ControllerEndpointDiscoverer extends EndpointDiscoverer endpointPathMappers, + public ControllerEndpointDiscoverer(ApplicationContext applicationContext, + @Nullable List endpointPathMappers, Collection> filters) { super(applicationContext, ParameterValueMapper.NONE, Collections.emptyList(), filters, Collections.emptyList()); this.endpointPathMappers = endpointPathMappers; diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ServletEndpointDiscoverer.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ServletEndpointDiscoverer.java index 53349220c3e..72d1ef6be50 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ServletEndpointDiscoverer.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/annotation/ServletEndpointDiscoverer.java @@ -53,7 +53,7 @@ import org.springframework.core.annotation.MergedAnnotations.SearchStrategy; public class ServletEndpointDiscoverer extends EndpointDiscoverer implements ServletEndpointsSupplier { - private final List endpointPathMappers; + private final @Nullable List endpointPathMappers; /** * Create a new {@link ServletEndpointDiscoverer} instance. @@ -61,7 +61,8 @@ public class ServletEndpointDiscoverer extends EndpointDiscoverer endpointPathMappers, + public ServletEndpointDiscoverer(ApplicationContext applicationContext, + @Nullable List endpointPathMappers, Collection> filters) { super(applicationContext, ParameterValueMapper.NONE, Collections.emptyList(), filters, Collections.emptyList()); this.endpointPathMappers = endpointPathMappers; diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java index d08cec6c4ae..07763085b07 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java @@ -62,7 +62,7 @@ public class HealthEndpoint extends HealthEndpointSupport> health(ApiVersion apiVersion, - WebServerNamespace serverNamespace, SecurityContext securityContext) { + @Nullable WebServerNamespace serverNamespace, SecurityContext securityContext) { return health(apiVersion, serverNamespace, securityContext, false, EMPTY_PATH); } @ReadOperation public Mono> health(ApiVersion apiVersion, - WebServerNamespace serverNamespace, SecurityContext securityContext, + @Nullable WebServerNamespace serverNamespace, SecurityContext securityContext, @Selector(match = Match.ALL_REMAINING) String... path) { return health(apiVersion, serverNamespace, securityContext, false, path); } diff --git a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/SystemHealthDescriptor.java b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/SystemHealthDescriptor.java index 50e62c9e13e..8eca392e759 100644 --- a/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/SystemHealthDescriptor.java +++ b/module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/SystemHealthDescriptor.java @@ -34,16 +34,16 @@ import org.springframework.boot.health.contributor.Status; */ public final class SystemHealthDescriptor extends CompositeHealthDescriptor { - private final Set groups; + private final @Nullable Set groups; SystemHealthDescriptor(ApiVersion apiVersion, Status status, @Nullable Map components, - Set groups) { + @Nullable Set groups) { super(apiVersion, status, components); this.groups = groups; } @JsonInclude(Include.NON_EMPTY) - public Set getGroups() { + public @Nullable Set getGroups() { return this.groups; }