From af7758cbc76d2bd6db1cc25e2d629f23e64979b8 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Sun, 15 Jun 2025 15:39:31 +0200 Subject: [PATCH] Configure CheckStyle rule for empty catch blocks This commit configures a new CheckStyle rule that fails for empty "catch" blocks, unless the exception is named "ignored" or "expected". This also fixes the remaining instances missed by the previous commit. Closes gh-35047 --- .../aop/aspectj/AspectJExpressionPointcut.java | 10 +++++----- .../aot/nativex/substitution/Target_Introspector.java | 2 +- .../cglib/proxy/BridgeMethodResolver.java | 3 +-- .../reactive/AbstractListenerWriteProcessor.java | 3 ++- .../springframework/web/filter/FormContentFilter.java | 2 +- .../ExceptionHandlerExceptionResolverTests.java | 3 ++- src/checkstyle/checkstyle-suppressions.xml | 2 +- src/checkstyle/checkstyle.xml | 3 +++ 8 files changed, 16 insertions(+), 12 deletions(-) diff --git a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java index 3efbc97277..b1b196243b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJExpressionPointcut.java @@ -453,9 +453,9 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut ClassUtils.toClassArray(ifcs), targetClass.getClassLoader()); targetMethod = ClassUtils.getMostSpecificMethod(targetMethod, compositeInterface); } - // Implemented interfaces probably expose conflicting method signatures... - // Proceed with original target method. - catch (IllegalArgumentException ignored) { + catch (IllegalArgumentException ex) { + // Implemented interfaces probably expose conflicting method signatures... + // Proceed with original target method. } } } @@ -478,7 +478,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut try { shadowMatch = pointcutExpression.matchesMethodExecution(methodToMatch); } - catch (ReflectionWorldException ignored) { + catch (ReflectionWorldException ex) { // Failed to introspect target method, probably because it has been loaded // in a special ClassLoader. Let's try the declaring ClassLoader instead... try { @@ -501,7 +501,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut try { shadowMatch = pointcutExpression.matchesMethodExecution(methodToMatch); } - catch (ReflectionWorldException ignored) { + catch (ReflectionWorldException ex) { // Could neither introspect the target class nor the proxy class -> // let's try the original method's declaring class before we give up... try { diff --git a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java b/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java index c88d6a9367..af68391c08 100644 --- a/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java +++ b/spring-core/src/main/java/org/springframework/aot/nativex/substitution/Target_Introspector.java @@ -48,7 +48,7 @@ final class Target_Introspector { } while (!c.getName().equals("java.lang.Object")); } } - catch (Exception exception) { + catch (Exception ignored) { } return null; } diff --git a/spring-core/src/main/java/org/springframework/cglib/proxy/BridgeMethodResolver.java b/spring-core/src/main/java/org/springframework/cglib/proxy/BridgeMethodResolver.java index 99f42c738e..65fcf60600 100644 --- a/spring-core/src/main/java/org/springframework/cglib/proxy/BridgeMethodResolver.java +++ b/spring-core/src/main/java/org/springframework/cglib/proxy/BridgeMethodResolver.java @@ -73,8 +73,7 @@ class BridgeMethodResolver { } finally { is.close(); } - } catch (IOException ignored) { - } + } catch (IOException ignored) {} } return resolved; } diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractListenerWriteProcessor.java b/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractListenerWriteProcessor.java index dd4148f11c..19f82840f3 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractListenerWriteProcessor.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/AbstractListenerWriteProcessor.java @@ -439,7 +439,8 @@ public abstract class AbstractListenerWriteProcessor implements Processor void onError(AbstractListenerWriteProcessor processor, Throwable ignored) { + public void onError(AbstractListenerWriteProcessor processor, Throwable ex) { + // ignore } @Override public void onComplete(AbstractListenerWriteProcessor processor) { diff --git a/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java b/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java index e4af874a7f..9df22fa567 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/FormContentFilter.java @@ -116,7 +116,7 @@ public class FormContentFilter extends OncePerRequestFilter { MediaType mediaType = MediaType.parseMediaType(contentType); return MediaType.APPLICATION_FORM_URLENCODED.includes(mediaType); } - catch (IllegalArgumentException ex) { + catch (IllegalArgumentException ignored) { } } return false; diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java index e385da4d14..d0cb25855b 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ExceptionHandlerExceptionResolverTests.java @@ -611,7 +611,8 @@ class ExceptionHandlerExceptionResolverTests { @ExceptionHandler(SocketTimeoutException.class) @ResponseStatus(code = HttpStatus.GATEWAY_TIMEOUT, reason = "gateway.timeout") - public void handleException(SocketTimeoutException ignored) { + public void handleException(SocketTimeoutException ex) { + } } diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml index f72cc439fc..88aca794da 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/src/checkstyle/checkstyle-suppressions.xml @@ -9,7 +9,7 @@ - + diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index fbe01bdcd3..292602a6b6 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -39,6 +39,9 @@ + + +