diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/CompositeHandlerExceptionResolver.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/CompositeHandlerExceptionResolver.java index 3fc31ffc59..62dbbd402a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/CompositeHandlerExceptionResolver.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/CompositeHandlerExceptionResolver.java @@ -19,7 +19,6 @@ package org.springframework.boot.actuate.autoconfigure.web.servlet; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.Optional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -52,15 +51,13 @@ class CompositeHandlerExceptionResolver implements HandlerExceptionResolver { if (this.resolvers == null) { this.resolvers = extractResolvers(); } - Optional modelAndView = this.resolvers.stream() + ModelAndView resolved = this.resolvers.stream() .map((resolver) -> resolver.resolveException(request, response, handler, ex)).filter(Objects::nonNull) - .findFirst(); - modelAndView.ifPresent((mav) -> { - if (mav.isEmpty()) { - request.setAttribute("javax.servlet.error.exception", ex); - } - }); - return modelAndView.orElse(null); + .findFirst().orElse(null); + if (resolved != null && resolved.isEmpty()) { + request.setAttribute("javax.servlet.error.exception", ex); + } + return resolved; } private List extractResolvers() { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java index 5ed26b0f28..679f13b72a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java @@ -120,7 +120,7 @@ class WebMvcEndpointChildContextConfigurationIntegrationTests { @SuppressWarnings("unchecked") private Map getResponseBody(ClientResponse response) { - return (Map) response.bodyToMono(Map.class).block(); + return response.bodyToMono(Map.class).block(); } @Endpoint(id = "fail")