diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorController.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorController.java index acef4b10cbf..dee8ab911b9 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorController.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorController.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,6 +33,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; /** @@ -82,16 +83,6 @@ public class BasicErrorController extends AbstractErrorController { return this.errorProperties.getPath(); } - @RequestMapping(produces = { "application/xml", "text/xml", "application/json", - "application/*+xml", "application/*+json" }) - public ResponseEntity> errorStructured( - HttpServletRequest request) { - Map body = getErrorAttributes(request, - isIncludeStackTrace(request, MediaType.ALL)); - HttpStatus status = getStatus(request); - return new ResponseEntity<>(body, status); - } - @RequestMapping(produces = "text/html") public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) { @@ -104,20 +95,12 @@ public class BasicErrorController extends AbstractErrorController { } @RequestMapping - public ResponseEntity errorText(HttpServletRequest request) { - Map attributes = getErrorAttributes(request, - isIncludeStackTrace(request, MediaType.TEXT_PLAIN)); - int padding = 0; - for (Map.Entry entry : attributes.entrySet()) { - padding = Math.max(padding, entry.getKey().length()); - } - StringBuilder body = new StringBuilder(); - for (Map.Entry entry : attributes.entrySet()) { - body.append(String.format("%-" + padding + "s : %s%n", entry.getKey(), - entry.getValue())); - } + @ResponseBody + public ResponseEntity> error(HttpServletRequest request) { + Map body = getErrorAttributes(request, + isIncludeStackTrace(request, MediaType.ALL)); HttpStatus status = getStatus(request); - return new ResponseEntity<>(body.toString(), status); + return new ResponseEntity<>(body, status); } /** diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorControllerIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorControllerIntegrationTests.java index 1af5e07cce8..6b32f333c83 100755 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorControllerIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/error/BasicErrorControllerIntegrationTests.java @@ -169,7 +169,6 @@ public class BasicErrorControllerIntegrationTests { load("--server.error.include-exception=true"); RequestEntity request = RequestEntity .post(URI.create(createUrl("/bodyValidation"))) - .accept(MediaType.APPLICATION_JSON) .contentType(MediaType.APPLICATION_JSON).body("{}"); ResponseEntity entity = new TestRestTemplate().exchange(request, Map.class); String resp = entity.getBody().toString(); @@ -190,18 +189,6 @@ public class BasicErrorControllerIntegrationTests { assertThat(resp).doesNotContain("org.springframework.validation.BindException"); } - @Test - public void testRequestBodyValidationForText() { - load(); - RequestEntity request = RequestEntity.post(URI.create(createUrl("/"))) - .accept(MediaType.TEXT_PLAIN).build(); - ResponseEntity entity = new TestRestTemplate().exchange(request, - String.class); - String resp = entity.getBody().toString(); - assertThat(resp).contains("status"); - assertThat(resp).contains("error"); - } - @Test public void testConventionTemplateMapping() { load();