From 45d593b8cbc90432853b0e5b9662478b09388783 Mon Sep 17 00:00:00 2001 From: Alexander Kriegisch Date: Fri, 9 Feb 2024 12:53:13 +0700 Subject: Add implementation note and JDK-8325536 link to Aj.preProcess See https://bugs.openjdk.org/browse/JDK-8325536. Relates to #277. Signed-off-by: Alexander Kriegisch --- loadtime/src/main/java/org/aspectj/weaver/loadtime/Aj.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'loadtime') diff --git a/loadtime/src/main/java/org/aspectj/weaver/loadtime/Aj.java b/loadtime/src/main/java/org/aspectj/weaver/loadtime/Aj.java index a8526ee55..4dbda9023 100644 --- a/loadtime/src/main/java/org/aspectj/weaver/loadtime/Aj.java +++ b/loadtime/src/main/java/org/aspectj/weaver/loadtime/Aj.java @@ -76,6 +76,11 @@ public class Aj implements ClassPreProcessor { @Override public byte[] preProcess(String className, final byte[] bytes, ClassLoader classLoader, ProtectionDomain protectionDomain) { + + // Implementation note: Try to return null, whenever it is clear that the original byte code was not changed by the + // weaver. While not strictly necessary, the changes from commit 3e3c83712e are defensive programming, which helps + // to avoid problems like https://bugs.openjdk.org/browse/JDK-8325536, even if unfixed in the JDK. + if (classLoader == null || className == null || classLoader.getClass().getName().equals(deleLoader) || classLoader.getClass().getName().equals(deleLoader2)) { // skip boot loader, null classes (hibernate), or those from a reflection loader -- cgit v1.2.3