diff --git a/tds/src/main/java/thredds/server/TdsErrorHandling.java b/tds/src/main/java/thredds/server/TdsErrorHandling.java index 44df863de7..e40cf2c9c9 100644 --- a/tds/src/main/java/thredds/server/TdsErrorHandling.java +++ b/tds/src/main/java/thredds/server/TdsErrorHandling.java @@ -11,6 +11,7 @@ import org.springframework.validation.BindException; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; +import org.springframework.web.ErrorResponse; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; @@ -174,7 +175,8 @@ public ResponseEntity handle(Throwable ex) throws Throwable { // at the start of this post. // AnnotationUtils is a Spring Framework utility class. // see https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc - if (AnnotationUtils.findAnnotation(ex.getClass(), ResponseStatus.class) != null) + // or if it is a spring ErrorResponse let the spring handlers deal with it + if (AnnotationUtils.findAnnotation(ex.getClass(), ResponseStatus.class) != null || ex instanceof ErrorResponse) throw ex; logger.error("uncaught exception", ex);