From 64e6b703b7fa50a31dc0b73ec85230aa99c77bd5 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 22 Feb 2023 02:13:52 +0300 Subject: Switch to Tomcat and omit its exceptions from logs --- src/main/java/com/juick/www/api/Index.java | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/juick/www') 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 badRequest(final ConstraintViolationException exception) { return ResponseEntity.badRequest().body(exception.getMessage()); } + @ExceptionHandler(IOException.class) + public ResponseEntity 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()); + } } -- cgit v1.2.3