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 f9cc6abd17f3..26ef05a5e4c7 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 @@ -17,10 +17,11 @@ package org.springframework.aot.agent; import java.lang.instrument.ClassFileTransformer; -import java.lang.instrument.IllegalClassFormatException; import java.security.ProtectionDomain; import java.util.Arrays; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.asm.ClassReader; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -43,6 +44,8 @@ class InvocationsRecorderClassTransformer implements ClassFileTransformer { private final String[] ignoredPackages; + private final Log logger = LogFactory.getLog(getClass()); + public InvocationsRecorderClassTransformer(String[] instrumentedPackages, String[] ignoredPackages) { Assert.notNull(instrumentedPackages, "instrumentedPackages must not be null"); Assert.notNull(ignoredPackages, "ignoredPackages must not be null"); @@ -57,7 +60,7 @@ private String[] rewriteToAsmFormat(String[] packages) { @Override public byte[] transform(@Nullable ClassLoader classLoader, String className, Class classBeingRedefined, - ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { + ProtectionDomain protectionDomain, byte[] classfileBuffer) { if (isTransformationCandidate(classLoader, className)) { return attemptClassTransformation(classfileBuffer); @@ -71,24 +74,22 @@ private boolean isTransformationCandidate(@Nullable ClassLoader classLoader, Str return false; } // Ignore agent classes and spring-core-test DynamicClassLoader - else if (className.startsWith(AGENT_PACKAGE) || className.equals(AOT_DYNAMIC_CLASSLOADER)) { + if (className.startsWith(AGENT_PACKAGE) || className.equals(AOT_DYNAMIC_CLASSLOADER)) { return false; } // Do not instrument CGlib classes - else if (className.contains("$$")) { + if (className.contains("$$")) { return false; } // Only some packages are instrumented - else { - for (String ignoredPackage : this.ignoredPackages) { - if (className.startsWith(ignoredPackage)) { - return false; - } + for (String ignoredPackage : this.ignoredPackages) { + if (className.startsWith(ignoredPackage)) { + return false; } - for (String instrumentedPackage : this.instrumentedPackages) { - if (className.startsWith(instrumentedPackage)) { - return true; - } + } + for (String instrumentedPackage : this.instrumentedPackages) { + if (className.startsWith(instrumentedPackage)) { + return true; } } return false; @@ -101,7 +102,7 @@ private byte[] attemptClassTransformation(byte[] classfileBuffer) { fileReader.accept(classVisitor, 0); } catch (Exception ex) { - ex.printStackTrace(); + logger.error(ex); return classfileBuffer; } if (classVisitor.isTransformed()) {