diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/BasicErrorController.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/BasicErrorController.java index e8a54eadeb1..7755315c4d6 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/BasicErrorController.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/BasicErrorController.java @@ -19,6 +19,7 @@ package org.springframework.boot.autoconfigure.web; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.springframework.boot.autoconfigure.web.ErrorProperties.IncludeStacktrace; import org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactory; @@ -79,7 +80,9 @@ public class BasicErrorController extends AbstractErrorController { } @RequestMapping(produces = "text/html") - public ModelAndView errorHtml(HttpServletRequest request) { + public ModelAndView errorHtml(HttpServletRequest request, + HttpServletResponse response) { + response.setStatus(getStatus(request).value()); Map model = getErrorAttributes(request, isIncludeStackTrace(request, MediaType.TEXT_HTML)); return new ModelAndView("error", model); diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerDirectMockMvcTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerDirectMockMvcTests.java index afbb02453db..56da7ccc95d 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerDirectMockMvcTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerDirectMockMvcTests.java @@ -85,7 +85,7 @@ public class BasicErrorControllerDirectMockMvcTests { .run("--server.port=0")); MvcResult response = this.mockMvc .perform(get("/error").accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("status=999")); } @@ -96,7 +96,7 @@ public class BasicErrorControllerDirectMockMvcTests { WebMvcIncludedConfiguration.class).run("--server.port=0")); MvcResult response = this.mockMvc .perform(get("/error").accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("status=999")); } @@ -116,7 +116,7 @@ public class BasicErrorControllerDirectMockMvcTests { WithAopConfiguration.class).run("--server.port=0")); MvcResult response = this.mockMvc .perform(get("/error").accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("status=999")); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerMockMvcTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerMockMvcTests.java index 0080b8e0408..e949c7a4cdc 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerMockMvcTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/BasicErrorControllerMockMvcTests.java @@ -121,7 +121,7 @@ public class BasicErrorControllerMockMvcTests { public void testDirectAccessForBrowserClient() throws Exception { MvcResult response = this.mockMvc .perform(get("/error").accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("ERROR_BEAN")); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/DefaultErrorViewIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/DefaultErrorViewIntegrationTests.java index 47a910edbef..c088dcc063c 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/DefaultErrorViewIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/DefaultErrorViewIntegrationTests.java @@ -69,7 +69,7 @@ public class DefaultErrorViewIntegrationTests { public void testErrorForBrowserClient() throws Exception { MvcResult response = this.mockMvc .perform(get("/error").accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("")); assertTrue("Wrong content: " + content, content.contains("999")); @@ -83,7 +83,7 @@ public class DefaultErrorViewIntegrationTests { new RuntimeException( "")) .accept(MediaType.TEXT_HTML)) - .andExpect(status().isOk()).andReturn(); + .andExpect(status().is5xxServerError()).andReturn(); String content = response.getResponse().getContentAsString(); assertTrue("Wrong content: " + content, content.contains("<script>")); assertTrue("Wrong content: " + content, content.contains("Hello World")); diff --git a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java index 93f316710f0..bdb76e65c27 100644 --- a/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-actuator-ui/src/test/java/sample/actuator/ui/SampleActuatorUiApplicationTests.java @@ -87,7 +87,7 @@ public class SampleActuatorUiApplicationTests { ResponseEntity entity = new TestRestTemplate().exchange( "http://localhost:" + this.port + "/error", HttpMethod.GET, new HttpEntity(headers), String.class); - assertEquals(HttpStatus.OK, entity.getStatusCode()); + assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, entity.getStatusCode()); assertTrue("Wrong body:\n" + entity.getBody(), entity.getBody().contains("")); assertTrue("Wrong body:\n" + entity.getBody(),