From 1977f3182171a1e04c5fd655da3f9b73186011a0 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 20 Jan 2026 19:23:37 +0100 Subject: [PATCH] Prevent accidental printStackTrace() usage in main codebase Closes gh-36185 (cherry picked from commit 65565de1a8968d605d2f1fac4754d76c792a8444) --- .../InvocationsRecorderClassTransformer.java | 5 ++++- src/checkstyle/checkstyle-suppressions.xml | 18 ++++++++------- src/checkstyle/checkstyle.xml | 22 ++++++++++--------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/spring-core-test/src/main/java/org/springframework/aot/agent/InvocationsRecorderClassTransformer.java b/spring-core-test/src/main/java/org/springframework/aot/agent/InvocationsRecorderClassTransformer.java index 7d81935a697..9142d0e5225 100644 --- a/spring-core-test/src/main/java/org/springframework/aot/agent/InvocationsRecorderClassTransformer.java +++ b/spring-core-test/src/main/java/org/springframework/aot/agent/InvocationsRecorderClassTransformer.java @@ -43,6 +43,7 @@ class InvocationsRecorderClassTransformer implements ClassFileTransformer { private final String[] ignoredPackages; + public InvocationsRecorderClassTransformer(String[] instrumentedPackages, String[] ignoredPackages) { Assert.notNull(instrumentedPackages, "instrumentedPackages must not be null"); Assert.notNull(ignoredPackages, "ignoredPackages must not be null"); @@ -55,6 +56,7 @@ class InvocationsRecorderClassTransformer implements ClassFileTransformer { .toArray(String[]::new); } + @Override public byte[] transform(@Nullable ClassLoader classLoader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { @@ -101,7 +103,7 @@ class InvocationsRecorderClassTransformer implements ClassFileTransformer { fileReader.accept(classVisitor, 0); } catch (Exception ex) { - ex.printStackTrace(); + System.err.println("Failed to transform class: " + ex); return classfileBuffer; } if (classVisitor.isTransformed()) { @@ -109,4 +111,5 @@ class InvocationsRecorderClassTransformer implements ClassFileTransformer { } return classfileBuffer; } + } diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml index 129dad4d9bb..b9c5093af58 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/src/checkstyle/checkstyle-suppressions.xml @@ -6,14 +6,15 @@ - - - + + + + @@ -23,7 +24,7 @@ - + @@ -47,8 +48,8 @@ - - + + @@ -58,8 +59,9 @@ - - + + + diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index 315ddaea135..6df21bb629a 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -73,8 +73,7 @@ - + @@ -135,8 +134,7 @@ - + @@ -254,21 +252,25 @@ value="String.toUpperCase() should be String.toUpperCase(Locale.ROOT)"/> + + + + + + + - + - - + +