aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick')
-rw-r--r--src/main/java/com/juick/www/api/Index.java20
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());
+ }
}