diff options
Diffstat (limited to 'src/main/java/com/juick/www')
-rw-r--r-- | src/main/java/com/juick/www/api/Index.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/juick/www/api/Index.java b/src/main/java/com/juick/www/api/Index.java index 7430c22d..1c990c65 100644 --- a/src/main/java/com/juick/www/api/Index.java +++ b/src/main/java/com/juick/www/api/Index.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2021, Juick + * Copyright (C) 2008-2023, Juick * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; +import java.io.IOException; import java.net.URI; /** @@ -61,4 +62,21 @@ public class Index { public ResponseEntity<String> badRequest(final ConstraintViolationException exception) { return ResponseEntity.badRequest().body(exception.getMessage()); } + @ExceptionHandler(IOException.class) + public ResponseEntity<String> handleAbortedConnection(final IOException ex) + { + // avoids compile/runtime dependency by using class name + if (ex.getClass().getName().equals("org.apache.catalina.connector.ClientAbortException")) + { + return null; + } + + // log and return error page for any other IOExceptions + if (logger.isWarnEnabled()) + { + logger.warn("IO Error", ex); + } + + return ResponseEntity.badRequest().body(ex.getMessage()); + } } |