diff --git a/spring-web/src/main/java/org/springframework/web/server/MethodNotAllowedException.java b/spring-web/src/main/java/org/springframework/web/server/MethodNotAllowedException.java index 541171d293..ab1d0aae0c 100644 --- a/spring-web/src/main/java/org/springframework/web/server/MethodNotAllowedException.java +++ b/spring-web/src/main/java/org/springframework/web/server/MethodNotAllowedException.java @@ -56,7 +56,9 @@ public class MethodNotAllowedException extends ResponseStatusException { } this.method = method; this.httpMethods = Collections.unmodifiableSet(new LinkedHashSet<>(supportedMethods)); - setDetail(this.httpMethods.isEmpty() ? getReason() : "Supported methods: " + this.httpMethods); + if (!this.httpMethods.isEmpty()) { + setDetail("Supported methods: " + this.httpMethods); + } } diff --git a/spring-web/src/main/java/org/springframework/web/server/MissingRequestValueException.java b/spring-web/src/main/java/org/springframework/web/server/MissingRequestValueException.java index de439da0d3..281676507a 100644 --- a/spring-web/src/main/java/org/springframework/web/server/MissingRequestValueException.java +++ b/spring-web/src/main/java/org/springframework/web/server/MissingRequestValueException.java @@ -42,7 +42,6 @@ public class MissingRequestValueException extends ServerWebInputException { this.name = name; this.type = type; this.label = label; - setDetail(getReason()); } diff --git a/spring-web/src/main/java/org/springframework/web/server/ResponseStatusException.java b/spring-web/src/main/java/org/springframework/web/server/ResponseStatusException.java index 544c40a4dc..c779133e5e 100644 --- a/spring-web/src/main/java/org/springframework/web/server/ResponseStatusException.java +++ b/spring-web/src/main/java/org/springframework/web/server/ResponseStatusException.java @@ -76,8 +76,7 @@ public class ResponseStatusException extends ErrorResponseException { * @param cause a nested exception (optional) */ public ResponseStatusException(HttpStatusCode status, @Nullable String reason, @Nullable Throwable cause) { - super(status, cause); - this.reason = reason; + this(status, reason, cause, null, null); } /** diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolverTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolverTests.java index eee6f72b9a..677e2ab284 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolverTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolverTests.java @@ -111,7 +111,7 @@ public class ResponseStatusExceptionResolverTests { } @Test // SPR-12903 - public void nestedException() throws Exception { + public void nestedException() { Exception cause = new StatusCodeAndReasonMessageException(); TypeMismatchException ex = new TypeMismatchException("value", ITestBean.class, cause); ModelAndView mav = exceptionResolver.resolveException(request, response, null, ex); @@ -119,14 +119,14 @@ public class ResponseStatusExceptionResolverTests { } @Test - public void responseStatusException() throws Exception { + public void responseStatusException() { ResponseStatusException ex = new ResponseStatusException(HttpStatus.BAD_REQUEST); ModelAndView mav = exceptionResolver.resolveException(request, response, null, ex); assertResolved(mav, 400, null); } @Test // SPR-15524 - public void responseStatusExceptionWithReason() throws Exception { + public void responseStatusExceptionWithReason() { ResponseStatusException ex = new ResponseStatusException(HttpStatus.BAD_REQUEST, "The reason"); ModelAndView mav = exceptionResolver.resolveException(request, response, null, ex); assertResolved(mav, 400, "The reason");