From e9cf8aa0d9a21e4d93987e5b501b09f6307df46c Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 15:49:34 -0400 Subject: [PATCH 01/19] dirty hack to rename file bc git doesn't track case changes Rename file (Part 1) Rename file (Part 2) --- .../{LoggerJbossLogAccess.java => LoggerJBossLogAccess.java} | 1 + 1 file changed, 1 insertion(+) rename test/transform/resource/before/{LoggerJbossLogAccess.java => LoggerJBossLogAccess.java} (94%) diff --git a/test/transform/resource/before/LoggerJbossLogAccess.java b/test/transform/resource/before/LoggerJBossLogAccess.java similarity index 94% rename from test/transform/resource/before/LoggerJbossLogAccess.java rename to test/transform/resource/before/LoggerJBossLogAccess.java index 6174c794..91df2423 100644 --- a/test/transform/resource/before/LoggerJbossLogAccess.java +++ b/test/transform/resource/before/LoggerJBossLogAccess.java @@ -5,6 +5,7 @@ import lombok.extern.jbosslog.JBossLog; class LoggerJBossLogAccessPublic { } +@SuppressWarnings("deprecation") @JBossLog(access = AccessLevel.MODULE) class LoggerJBossLogAccessModule { } From 58abf0caf93a58fb1d5bfd814ecfa5ba331dc44f Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 16:25:37 -0400 Subject: [PATCH 02/19] Suppress deprecation warning for AccessLevel.MODULE --- test/transform/resource/after-delombok/LoggerCommonsAccess.java | 1 + test/transform/resource/after-delombok/LoggerCustomAccess.java | 1 + test/transform/resource/after-delombok/LoggerFloggerAccess.java | 1 + .../transform/resource/after-delombok/LoggerJBossLogAccess.java | 1 + test/transform/resource/after-delombok/LoggerJulAccess.java | 1 + test/transform/resource/after-delombok/LoggerLog4j2Access.java | 1 + test/transform/resource/after-delombok/LoggerLog4jAccess.java | 1 + test/transform/resource/after-delombok/LoggerSlf4jAccess.java | 1 + test/transform/resource/after-delombok/LoggerXslf4jAccess.java | 1 + test/transform/resource/after-ecj/LoggerCommonsAccess.java | 2 +- test/transform/resource/after-ecj/LoggerCustomAccess.java | 2 +- test/transform/resource/after-ecj/LoggerFloggerAccess.java | 2 +- test/transform/resource/after-ecj/LoggerJBossLogAccess.java | 2 +- test/transform/resource/after-ecj/LoggerJulAccess.java | 2 +- test/transform/resource/after-ecj/LoggerLog4j2Access.java | 2 +- test/transform/resource/after-ecj/LoggerLog4jAccess.java | 2 +- test/transform/resource/after-ecj/LoggerSlf4jAccess.java | 2 +- test/transform/resource/after-ecj/LoggerXslf4jAccess.java | 2 +- test/transform/resource/before/LoggerCommonsAccess.java | 1 + test/transform/resource/before/LoggerCustomAccess.java | 1 + test/transform/resource/before/LoggerFloggerAccess.java | 1 + test/transform/resource/before/LoggerJulAccess.java | 1 + test/transform/resource/before/LoggerLog4j2Access.java | 1 + test/transform/resource/before/LoggerLog4jAccess.java | 1 + test/transform/resource/before/LoggerSlf4jAccess.java | 1 + test/transform/resource/before/LoggerXslf4jAccess.java | 1 + 26 files changed, 26 insertions(+), 9 deletions(-) diff --git a/test/transform/resource/after-delombok/LoggerCommonsAccess.java b/test/transform/resource/after-delombok/LoggerCommonsAccess.java index 5a4c648f..5d670398 100644 --- a/test/transform/resource/after-delombok/LoggerCommonsAccess.java +++ b/test/transform/resource/after-delombok/LoggerCommonsAccess.java @@ -5,6 +5,7 @@ class LoggerCommonsAccessPublic { public static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerCommonsAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerCustomAccess.java b/test/transform/resource/after-delombok/LoggerCustomAccess.java index d3f3806d..26f85ab4 100644 --- a/test/transform/resource/after-delombok/LoggerCustomAccess.java +++ b/test/transform/resource/after-delombok/LoggerCustomAccess.java @@ -5,6 +5,7 @@ class LoggerCustomAccessPublic { public static final MyLogger log = MyLoggerFactory.create(LoggerCustomAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerCustomAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerFloggerAccess.java b/test/transform/resource/after-delombok/LoggerFloggerAccess.java index 8da287c4..d191d16c 100644 --- a/test/transform/resource/after-delombok/LoggerFloggerAccess.java +++ b/test/transform/resource/after-delombok/LoggerFloggerAccess.java @@ -5,6 +5,7 @@ class LoggerFloggerAccessPublic { public static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); } +@SuppressWarnings("deprecation") class LoggerFloggerAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerJBossLogAccess.java b/test/transform/resource/after-delombok/LoggerJBossLogAccess.java index bcb25fd4..c8994e00 100644 --- a/test/transform/resource/after-delombok/LoggerJBossLogAccess.java +++ b/test/transform/resource/after-delombok/LoggerJBossLogAccess.java @@ -5,6 +5,7 @@ class LoggerJBossLogAccessPublic { public static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerJBossLogAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerJulAccess.java b/test/transform/resource/after-delombok/LoggerJulAccess.java index 37aa78b7..af50cc72 100644 --- a/test/transform/resource/after-delombok/LoggerJulAccess.java +++ b/test/transform/resource/after-delombok/LoggerJulAccess.java @@ -5,6 +5,7 @@ class LoggerJulAccessPublic { public static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessPublic.class.getName()); } +@SuppressWarnings("deprecation") class LoggerJulAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerLog4j2Access.java b/test/transform/resource/after-delombok/LoggerLog4j2Access.java index fc067a86..37a0bb68 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2Access.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2Access.java @@ -5,6 +5,7 @@ class LoggerLog4j2AccessPublic { public static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerLog4j2AccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerLog4jAccess.java b/test/transform/resource/after-delombok/LoggerLog4jAccess.java index fd7939ce..f73bc4c8 100644 --- a/test/transform/resource/after-delombok/LoggerLog4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerLog4jAccess.java @@ -5,6 +5,7 @@ class LoggerLog4jAccessPublic { public static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerLog4jAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerSlf4jAccess.java b/test/transform/resource/after-delombok/LoggerSlf4jAccess.java index e43304a8..cffd20cc 100644 --- a/test/transform/resource/after-delombok/LoggerSlf4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerSlf4jAccess.java @@ -5,6 +5,7 @@ class LoggerSlf4jAccessPublic { public static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerSlf4jAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerXslf4jAccess.java b/test/transform/resource/after-delombok/LoggerXslf4jAccess.java index 47035f59..224eadaf 100644 --- a/test/transform/resource/after-delombok/LoggerXslf4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerXslf4jAccess.java @@ -5,6 +5,7 @@ class LoggerXslf4jAccessPublic { public static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPublic.class); } +@SuppressWarnings("deprecation") class LoggerXslf4jAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-ecj/LoggerCommonsAccess.java b/test/transform/resource/after-ecj/LoggerCommonsAccess.java index 308fa2a5..3bf74bc4 100644 --- a/test/transform/resource/after-ecj/LoggerCommonsAccess.java +++ b/test/transform/resource/after-ecj/LoggerCommonsAccess.java @@ -9,7 +9,7 @@ import lombok.extern.apachecommons.CommonsLog; super(); } } -@CommonsLog(access = AccessLevel.MODULE) class LoggerCommonsAccessModule { +@SuppressWarnings("deprecation") @CommonsLog(access = AccessLevel.MODULE) class LoggerCommonsAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerCustomAccess.java b/test/transform/resource/after-ecj/LoggerCustomAccess.java index 82b72ef1..2afa8016 100644 --- a/test/transform/resource/after-ecj/LoggerCustomAccess.java +++ b/test/transform/resource/after-ecj/LoggerCustomAccess.java @@ -9,7 +9,7 @@ import lombok.CustomLog; super(); } } -@CustomLog(access = AccessLevel.MODULE) class LoggerCustomAccessModule { +@SuppressWarnings("deprecation") @CustomLog(access = AccessLevel.MODULE) class LoggerCustomAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated MyLogger log = MyLoggerFactory.create(LoggerCustomAccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerFloggerAccess.java b/test/transform/resource/after-ecj/LoggerFloggerAccess.java index 125c479f..0560e415 100644 --- a/test/transform/resource/after-ecj/LoggerFloggerAccess.java +++ b/test/transform/resource/after-ecj/LoggerFloggerAccess.java @@ -9,7 +9,7 @@ import lombok.extern.flogger.Flogger; super(); } } -@Flogger(access = AccessLevel.MODULE) class LoggerFloggerAccessModule { +@SuppressWarnings("deprecation") @Flogger(access = AccessLevel.MODULE) class LoggerFloggerAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); () { } diff --git a/test/transform/resource/after-ecj/LoggerJBossLogAccess.java b/test/transform/resource/after-ecj/LoggerJBossLogAccess.java index 5a156783..361b3cc5 100644 --- a/test/transform/resource/after-ecj/LoggerJBossLogAccess.java +++ b/test/transform/resource/after-ecj/LoggerJBossLogAccess.java @@ -9,7 +9,7 @@ import lombok.extern.jbosslog.JBossLog; super(); } } -@JBossLog(access = AccessLevel.MODULE) class LoggerJBossLogAccessModule { +@SuppressWarnings("deprecation") @JBossLog(access = AccessLevel.MODULE) class LoggerJBossLogAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerJulAccess.java b/test/transform/resource/after-ecj/LoggerJulAccess.java index 6f0210f6..486fadbc 100644 --- a/test/transform/resource/after-ecj/LoggerJulAccess.java +++ b/test/transform/resource/after-ecj/LoggerJulAccess.java @@ -9,7 +9,7 @@ import lombok.extern.java.Log; super(); } } -@Log(access = AccessLevel.MODULE) class LoggerJulAccessModule { +@SuppressWarnings("deprecation") @Log(access = AccessLevel.MODULE) class LoggerJulAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessModule.class.getName()); () { } diff --git a/test/transform/resource/after-ecj/LoggerLog4j2Access.java b/test/transform/resource/after-ecj/LoggerLog4j2Access.java index 0ce19d8d..49183fa5 100644 --- a/test/transform/resource/after-ecj/LoggerLog4j2Access.java +++ b/test/transform/resource/after-ecj/LoggerLog4j2Access.java @@ -9,7 +9,7 @@ import lombok.extern.log4j.Log4j2; super(); } } -@Log4j2(access = AccessLevel.MODULE) class LoggerLog4j2AccessModule { +@SuppressWarnings("deprecation") @Log4j2(access = AccessLevel.MODULE) class LoggerLog4j2AccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerLog4jAccess.java b/test/transform/resource/after-ecj/LoggerLog4jAccess.java index fb82d92b..5f8259ae 100644 --- a/test/transform/resource/after-ecj/LoggerLog4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerLog4jAccess.java @@ -9,7 +9,7 @@ import lombok.extern.log4j.Log4j; super(); } } -@Log4j(access = AccessLevel.MODULE) class LoggerLog4jAccessModule { +@SuppressWarnings("deprecation") @Log4j(access = AccessLevel.MODULE) class LoggerLog4jAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerSlf4jAccess.java b/test/transform/resource/after-ecj/LoggerSlf4jAccess.java index 90fad6f1..87fdf311 100644 --- a/test/transform/resource/after-ecj/LoggerSlf4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerSlf4jAccess.java @@ -9,7 +9,7 @@ import lombok.extern.slf4j.Slf4j; super(); } } -@Slf4j(access = AccessLevel.MODULE) class LoggerSlf4jAccessModule { +@SuppressWarnings("deprecation") @Slf4j(access = AccessLevel.MODULE) class LoggerSlf4jAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessModule.class); () { } diff --git a/test/transform/resource/after-ecj/LoggerXslf4jAccess.java b/test/transform/resource/after-ecj/LoggerXslf4jAccess.java index b64f50c5..c6f53ae9 100644 --- a/test/transform/resource/after-ecj/LoggerXslf4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerXslf4jAccess.java @@ -9,7 +9,7 @@ import lombok.extern.slf4j.XSlf4j; super(); } } -@XSlf4j(access = AccessLevel.MODULE) class LoggerXslf4jAccessModule { +@SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) class LoggerXslf4jAccessModule { static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessModule.class); () { } diff --git a/test/transform/resource/before/LoggerCommonsAccess.java b/test/transform/resource/before/LoggerCommonsAccess.java index 7b8ad198..47a59fdd 100644 --- a/test/transform/resource/before/LoggerCommonsAccess.java +++ b/test/transform/resource/before/LoggerCommonsAccess.java @@ -5,6 +5,7 @@ import lombok.extern.apachecommons.CommonsLog; class LoggerCommonsAccessPublic { } +@SuppressWarnings("deprecation") @CommonsLog(access = AccessLevel.MODULE) class LoggerCommonsAccessModule { } diff --git a/test/transform/resource/before/LoggerCustomAccess.java b/test/transform/resource/before/LoggerCustomAccess.java index 3602e917..966c93b5 100644 --- a/test/transform/resource/before/LoggerCustomAccess.java +++ b/test/transform/resource/before/LoggerCustomAccess.java @@ -6,6 +6,7 @@ import lombok.CustomLog; class LoggerCustomAccessPublic { } +@SuppressWarnings("deprecation") @CustomLog(access = AccessLevel.MODULE) class LoggerCustomAccessModule { } diff --git a/test/transform/resource/before/LoggerFloggerAccess.java b/test/transform/resource/before/LoggerFloggerAccess.java index 65873a73..14177e7b 100644 --- a/test/transform/resource/before/LoggerFloggerAccess.java +++ b/test/transform/resource/before/LoggerFloggerAccess.java @@ -5,6 +5,7 @@ import lombok.extern.flogger.Flogger; class LoggerFloggerAccessPublic { } +@SuppressWarnings("deprecation") @Flogger(access = AccessLevel.MODULE) class LoggerFloggerAccessModule { } diff --git a/test/transform/resource/before/LoggerJulAccess.java b/test/transform/resource/before/LoggerJulAccess.java index 144b8c4c..84c205b7 100644 --- a/test/transform/resource/before/LoggerJulAccess.java +++ b/test/transform/resource/before/LoggerJulAccess.java @@ -5,6 +5,7 @@ import lombok.extern.java.Log; class LoggerJulAccessPublic { } +@SuppressWarnings("deprecation") @Log(access = AccessLevel.MODULE) class LoggerJulAccessModule { } diff --git a/test/transform/resource/before/LoggerLog4j2Access.java b/test/transform/resource/before/LoggerLog4j2Access.java index 44bbf71e..81d75d86 100644 --- a/test/transform/resource/before/LoggerLog4j2Access.java +++ b/test/transform/resource/before/LoggerLog4j2Access.java @@ -5,6 +5,7 @@ import lombok.extern.log4j.Log4j2; class LoggerLog4j2AccessPublic { } +@SuppressWarnings("deprecation") @Log4j2(access = AccessLevel.MODULE) class LoggerLog4j2AccessModule { } diff --git a/test/transform/resource/before/LoggerLog4jAccess.java b/test/transform/resource/before/LoggerLog4jAccess.java index 78e37454..99e953ca 100644 --- a/test/transform/resource/before/LoggerLog4jAccess.java +++ b/test/transform/resource/before/LoggerLog4jAccess.java @@ -5,6 +5,7 @@ import lombok.extern.log4j.Log4j; class LoggerLog4jAccessPublic { } +@SuppressWarnings("deprecation") @Log4j(access = AccessLevel.MODULE) class LoggerLog4jAccessModule { } diff --git a/test/transform/resource/before/LoggerSlf4jAccess.java b/test/transform/resource/before/LoggerSlf4jAccess.java index fadac141..5c8c403b 100644 --- a/test/transform/resource/before/LoggerSlf4jAccess.java +++ b/test/transform/resource/before/LoggerSlf4jAccess.java @@ -5,6 +5,7 @@ import lombok.extern.slf4j.Slf4j; class LoggerSlf4jAccessPublic { } +@SuppressWarnings("deprecation") @Slf4j(access = AccessLevel.MODULE) class LoggerSlf4jAccessModule { } diff --git a/test/transform/resource/before/LoggerXslf4jAccess.java b/test/transform/resource/before/LoggerXslf4jAccess.java index 4707c301..c2e5e2e9 100644 --- a/test/transform/resource/before/LoggerXslf4jAccess.java +++ b/test/transform/resource/before/LoggerXslf4jAccess.java @@ -5,6 +5,7 @@ import lombok.extern.slf4j.XSlf4j; class LoggerXslf4jAccessPublic { } +@SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) class LoggerXslf4jAccessModule { } From 952fef189c5dba9b6ac5fe32ee5a613439ea7ac0 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 19:55:09 -0400 Subject: [PATCH 03/19] Fix AnnotationProcessingError for Log4j2 access level tests --- test/transform/resource/after-delombok/LoggerLog4j2Access.java | 1 + 1 file changed, 1 insertion(+) diff --git a/test/transform/resource/after-delombok/LoggerLog4j2Access.java b/test/transform/resource/after-delombok/LoggerLog4j2Access.java index 37a0bb68..8094e547 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2Access.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2Access.java @@ -1,3 +1,4 @@ +//version 8: import lombok.AccessLevel; class LoggerLog4j2AccessPublic { @java.lang.SuppressWarnings("all") From fef4d619789fd9306ecb5282dfc5380697ed35d5 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 19:57:25 -0400 Subject: [PATCH 04/19] dirty hack to rename file bc git doesn't track case changes (again) Rename file (Part 1) Rename file (Part 2) --- .../{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} | 0 .../{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} | 0 .../before/{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename test/transform/resource/after-delombok/{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} (100%) rename test/transform/resource/after-ecj/{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} (100%) rename test/transform/resource/before/{LoggerXslf4jAccess.java => LoggerXSlf4jAccess.java} (100%) diff --git a/test/transform/resource/after-delombok/LoggerXslf4jAccess.java b/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java similarity index 100% rename from test/transform/resource/after-delombok/LoggerXslf4jAccess.java rename to test/transform/resource/after-delombok/LoggerXSlf4jAccess.java diff --git a/test/transform/resource/after-ecj/LoggerXslf4jAccess.java b/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java similarity index 100% rename from test/transform/resource/after-ecj/LoggerXslf4jAccess.java rename to test/transform/resource/after-ecj/LoggerXSlf4jAccess.java diff --git a/test/transform/resource/before/LoggerXslf4jAccess.java b/test/transform/resource/before/LoggerXSlf4jAccess.java similarity index 100% rename from test/transform/resource/before/LoggerXslf4jAccess.java rename to test/transform/resource/before/LoggerXSlf4jAccess.java From da5e18de59370668a3b4aed960ae407308ca338e Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Fri, 19 Sep 2025 06:00:51 -0400 Subject: [PATCH 05/19] rename LoggerXslf4jAccess* classes to match file name --- .../after-delombok/LoggerXSlf4jAccess.java | 22 ++++++------ .../after-ecj/LoggerXSlf4jAccess.java | 34 +++++++++---------- .../resource/before/LoggerXSlf4jAccess.java | 12 +++---- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java b/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java index 224eadaf..5c59bd27 100644 --- a/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java @@ -1,34 +1,34 @@ import lombok.AccessLevel; -class LoggerXslf4jAccessPublic { +class LoggerXSlf4jAccessPublic { @java.lang.SuppressWarnings("all") @lombok.Generated - public static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPublic.class); + public static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPublic.class); } @SuppressWarnings("deprecation") -class LoggerXslf4jAccessModule { +class LoggerXSlf4jAccessModule { @java.lang.SuppressWarnings("all") @lombok.Generated - static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessModule.class); + static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessModule.class); } -class LoggerXslf4jAccessProtected { +class LoggerXSlf4jAccessProtected { @java.lang.SuppressWarnings("all") @lombok.Generated - protected static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessProtected.class); + protected static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessProtected.class); } -class LoggerXslf4jAccessPackage { +class LoggerXSlf4jAccessPackage { @java.lang.SuppressWarnings("all") @lombok.Generated - static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPackage.class); + static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPackage.class); } -class LoggerXslf4jAccessPrivate { +class LoggerXSlf4jAccessPrivate { @java.lang.SuppressWarnings("all") @lombok.Generated - private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPrivate.class); + private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPrivate.class); } -class LoggerXslf4jAccessNone { +class LoggerXSlf4jAccessNone { } diff --git a/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java b/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java index c6f53ae9..bfbe1f76 100644 --- a/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java @@ -1,52 +1,52 @@ import lombok.AccessLevel; import lombok.extern.slf4j.XSlf4j; -@XSlf4j(access = AccessLevel.PUBLIC) class LoggerXslf4jAccessPublic { - public static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPublic.class); +@XSlf4j(access = AccessLevel.PUBLIC) class LoggerXSlf4jAccessPublic { + public static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPublic.class); () { } - LoggerXslf4jAccessPublic() { + LoggerXSlf4jAccessPublic() { super(); } } -@SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) class LoggerXslf4jAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessModule.class); +@SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) class LoggerXSlf4jAccessModule { + static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessModule.class); () { } - LoggerXslf4jAccessModule() { + LoggerXSlf4jAccessModule() { super(); } } -@XSlf4j(access = AccessLevel.PROTECTED) class LoggerXslf4jAccessProtected { - protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessProtected.class); +@XSlf4j(access = AccessLevel.PROTECTED) class LoggerXSlf4jAccessProtected { + protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessProtected.class); () { } - LoggerXslf4jAccessProtected() { + LoggerXSlf4jAccessProtected() { super(); } } -@XSlf4j(access = AccessLevel.PACKAGE) class LoggerXslf4jAccessPackage { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPackage.class); +@XSlf4j(access = AccessLevel.PACKAGE) class LoggerXSlf4jAccessPackage { + static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPackage.class); () { } - LoggerXslf4jAccessPackage() { + LoggerXSlf4jAccessPackage() { super(); } } -@XSlf4j(access = AccessLevel.PRIVATE) class LoggerXslf4jAccessPrivate { - private static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXslf4jAccessPrivate.class); +@XSlf4j(access = AccessLevel.PRIVATE) class LoggerXSlf4jAccessPrivate { + private static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPrivate.class); () { } - LoggerXslf4jAccessPrivate() { + LoggerXSlf4jAccessPrivate() { super(); } } -@XSlf4j(access = AccessLevel.NONE) class LoggerXslf4jAccessNone { - LoggerXslf4jAccessNone() { +@XSlf4j(access = AccessLevel.NONE) class LoggerXSlf4jAccessNone { + LoggerXSlf4jAccessNone() { super(); } } diff --git a/test/transform/resource/before/LoggerXSlf4jAccess.java b/test/transform/resource/before/LoggerXSlf4jAccess.java index c2e5e2e9..28474e31 100644 --- a/test/transform/resource/before/LoggerXSlf4jAccess.java +++ b/test/transform/resource/before/LoggerXSlf4jAccess.java @@ -2,26 +2,26 @@ import lombok.AccessLevel; import lombok.extern.slf4j.XSlf4j; @XSlf4j(access = AccessLevel.PUBLIC) -class LoggerXslf4jAccessPublic { +class LoggerXSlf4jAccessPublic { } @SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) -class LoggerXslf4jAccessModule { +class LoggerXSlf4jAccessModule { } @XSlf4j(access = AccessLevel.PROTECTED) -class LoggerXslf4jAccessProtected { +class LoggerXSlf4jAccessProtected { } @XSlf4j(access = AccessLevel.PACKAGE) -class LoggerXslf4jAccessPackage { +class LoggerXSlf4jAccessPackage { } @XSlf4j(access = AccessLevel.PRIVATE) -class LoggerXslf4jAccessPrivate { +class LoggerXSlf4jAccessPrivate { } @XSlf4j(access = AccessLevel.NONE) -class LoggerXslf4jAccessNone { +class LoggerXSlf4jAccessNone { } From e8fb46179fd7651f53f4c78f671121bb78db4af1 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Thu, 25 Sep 2025 16:40:32 +0200 Subject: [PATCH 06/19] [trivial] Add clarification for excluded tests --- test/transform/resource/after-delombok/LoggerLog4j2.java | 2 +- test/transform/resource/after-delombok/LoggerLog4j2Access.java | 2 +- test/transform/resource/before/LoggerLog4j2.java | 2 +- test/transform/resource/before/LoggerLog4j2Access.java | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/transform/resource/after-delombok/LoggerLog4j2.java b/test/transform/resource/after-delombok/LoggerLog4j2.java index f2c79cf1..1dbf71a2 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2.java @@ -1,4 +1,4 @@ -//version 8: +//version 8: Our Log4j2 version doesn't support Java 6 class LoggerLog4j2 { @java.lang.SuppressWarnings("all") @lombok.Generated diff --git a/test/transform/resource/after-delombok/LoggerLog4j2Access.java b/test/transform/resource/after-delombok/LoggerLog4j2Access.java index 8094e547..d06f69ff 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2Access.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2Access.java @@ -1,4 +1,4 @@ -//version 8: +//version 8: Our Log4j2 version doesn't support Java 6 import lombok.AccessLevel; class LoggerLog4j2AccessPublic { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/before/LoggerLog4j2.java b/test/transform/resource/before/LoggerLog4j2.java index bf717cb8..0069271e 100644 --- a/test/transform/resource/before/LoggerLog4j2.java +++ b/test/transform/resource/before/LoggerLog4j2.java @@ -1,4 +1,4 @@ -//version 8: +//version 8: Our Log4j2 version doesn't support Java 6 import lombok.extern.log4j.Log4j2; @lombok.extern.log4j.Log4j2 diff --git a/test/transform/resource/before/LoggerLog4j2Access.java b/test/transform/resource/before/LoggerLog4j2Access.java index 81d75d86..0f313bfa 100644 --- a/test/transform/resource/before/LoggerLog4j2Access.java +++ b/test/transform/resource/before/LoggerLog4j2Access.java @@ -1,3 +1,4 @@ +// version 8: Our Log4j2 version doesn't support Java 6 import lombok.AccessLevel; import lombok.extern.log4j.Log4j2; From 93e9bebf0a6741a5a87bf71852b48aac6a621e49 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Thu, 25 Sep 2025 16:56:52 +0200 Subject: [PATCH 07/19] [fixes #3954][fixes #3947] Suppress messages during resolution --- .../javac/CompilerMessageSuppressor.java | 62 +++++++++++-------- src/core/lombok/javac/JavacAST.java | 2 + src/core/lombok/javac/JavacResolution.java | 6 +- src/utils/lombok/permit/Permit.java | 10 ++- .../ExtensionMethodInLambda.java | 2 + .../after-ecj/ExtensionMethodInLambda.java | 3 + .../before/ExtensionMethodInLambda.java | 2 + .../ExtensionMethodInLambda.java.messages | 2 +- .../ValInvalidParameter.java.messages | 6 ++ .../ExtensionMethodInLambda.java.messages | 2 +- .../ExtensionMethodInLambda.java.messages | 2 +- 11 files changed, 67 insertions(+), 32 deletions(-) diff --git a/src/core/lombok/javac/CompilerMessageSuppressor.java b/src/core/lombok/javac/CompilerMessageSuppressor.java index 7d7b81e6..fc820b90 100644 --- a/src/core/lombok/javac/CompilerMessageSuppressor.java +++ b/src/core/lombok/javac/CompilerMessageSuppressor.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2021 The Project Lombok Authors. + * Copyright (C) 2011-2025 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,7 +24,10 @@ package lombok.javac; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Collection; import java.util.LinkedList; import java.util.Map; import java.util.Queue; @@ -36,7 +39,6 @@ import javax.tools.JavaFileObject; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.JCDiagnostic; -import com.sun.tools.javac.util.ListBuffer; import com.sun.tools.javac.util.Log; import lombok.permit.Permit; @@ -53,9 +55,14 @@ public final class CompilerMessageSuppressor { private static final Field deferDiagnosticsField, deferredDiagnosticsField, diagnosticHandlerField; private static final ConcurrentMap, Field> handlerDeferredFields = new ConcurrentHashMap, Field>(); private static final Field NULL_FIELD; + private static final Class DIAGNOSTIC_HANDLER; + private static final Class DISCARD_DIAGNOSTIC_HANDLER; + private static final Method POP_DIAGNOSTIC_HANDLER; + private static final Constructor DISCARD_DIAGNOSTIC_HANDLER_CONSTRUCTOR; private Boolean dumpOnError, promptOnError; private DiagnosticListener contextDiagnosticListener, logDiagnosticListener; private final Context context; + private Object diagnosticHandler; private static final ThreadLocal> queueCache = new ThreadLocal>(); @@ -87,6 +94,11 @@ public final class CompilerMessageSuppressor { diagnosticHandlerField = getDeclaredField(Log.class, "diagnosticHandler"); NULL_FIELD = getDeclaredField(JavacResolution.class, "NULL_FIELD"); + + DIAGNOSTIC_HANDLER = getClass("com.sun.tools.javac.util.Log$DiagnosticHandler"); + DISCARD_DIAGNOSTIC_HANDLER = getClass("com.sun.tools.javac.util.Log$DiscardDiagnosticHandler"); + POP_DIAGNOSTIC_HANDLER = DIAGNOSTIC_HANDLER != null ? Permit.permissiveGetMethod(Log.class, "popDiagnosticHandler", DIAGNOSTIC_HANDLER) : null; + DISCARD_DIAGNOSTIC_HANDLER_CONSTRUCTOR = DISCARD_DIAGNOSTIC_HANDLER != null ? Permit.permissiveGetConstructor(DISCARD_DIAGNOSTIC_HANDLER, Log.class) : null; } static Field getDeclaredField(Class c, String fieldName) { @@ -97,6 +109,14 @@ public final class CompilerMessageSuppressor { } } + static Class getClass(String name) { + try { + return Class.forName(name); + } catch (Throwable t) { + return null; + } + } + public CompilerMessageSuppressor(Context context) { this.log = Log.instance(context); this.context = context; @@ -118,16 +138,6 @@ public final class CompilerMessageSuppressor { } } catch (Exception e) {} - if (diagnosticHandlerField != null) try { - Object handler = diagnosticHandlerField.get(log); - Field field = getDeferredField(handler); - if (field != null) { - queueCache.set((Queue) field.get(handler)); - Queue empty = new LinkedList(); - field.set(handler, empty); - } - } catch (Exception e) {} - if (dumpOnErrorField != null) try { dumpOnError = (Boolean) dumpOnErrorField.get(log); dumpOnErrorField.set(log, false); @@ -145,6 +155,11 @@ public final class CompilerMessageSuppressor { diagnosticListenerField.set(log, null); } catch (Exception e) { } + + if (DISCARD_DIAGNOSTIC_HANDLER != null) try { + diagnosticHandler = Permit.newInstance(DISCARD_DIAGNOSTIC_HANDLER_CONSTRUCTOR, log); + } catch (Exception e) { + } } private static Field getDeferredField(Object handler) { @@ -183,19 +198,15 @@ public final class CompilerMessageSuppressor { logDiagnosticListener = null; } catch (Exception e) {} - if (diagnosticHandlerField != null && queueCache.get() != null) try { - Object handler = diagnosticHandlerField.get(log); - Field field = getDeferredField(handler); - if (field != null) { - field.set(handler, queueCache.get()); - queueCache.set(null); - } - } catch (Exception e) {} - if (deferDiagnosticsField != null && queueCache.get() != null) try { deferredDiagnosticsField.set(log, queueCache.get()); queueCache.set(null); } catch (Exception e) {} + + if (diagnosticHandler != null) try { + Permit.invoke(POP_DIAGNOSTIC_HANDLER, log, diagnosticHandler); + } catch (Exception e) {} + diagnosticHandler = null; } public void removeAllBetween(JavaFileObject sourcefile, int startPos, int endPos) { @@ -222,11 +233,12 @@ public final class CompilerMessageSuppressor { if (field == null || receiver == null) return; try { - ListBuffer deferredDiagnostics = (ListBuffer) field.get(receiver); - ListBuffer newDeferredDiagnostics = new ListBuffer(); + Collection deferredDiagnostics = (Collection) field.get(receiver); + if (deferredDiagnostics.isEmpty()) return; + LinkedList newDeferredDiagnostics = new LinkedList(); for (Object diag_ : deferredDiagnostics) { if (!(diag_ instanceof JCDiagnostic)) { - newDeferredDiagnostics.append(diag_); + newDeferredDiagnostics.add(diag_); continue; } JCDiagnostic diag = (JCDiagnostic) diag_; @@ -234,7 +246,7 @@ public final class CompilerMessageSuppressor { if (here >= startPos && here < endPos && diag.getSource() == sourcefile) { // We eliminate it } else { - newDeferredDiagnostics.append(diag); + newDeferredDiagnostics.add(diag); } } field.set(receiver, newDeferredDiagnostics); diff --git a/src/core/lombok/javac/JavacAST.java b/src/core/lombok/javac/JavacAST.java index 9504bc4a..fc548bd1 100644 --- a/src/core/lombok/javac/JavacAST.java +++ b/src/core/lombok/javac/JavacAST.java @@ -68,6 +68,7 @@ import com.sun.tools.javac.util.JCDiagnostic; import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition; import com.sun.tools.javac.util.Log; import com.sun.tools.javac.util.Name; +import com.sun.tools.javac.util.Position; /** * Wraps around javac's internal AST view to add useful features as well as the ability to visit parents from children, @@ -595,6 +596,7 @@ public class JavacAST extends AST { } public void removeFromDeferredDiagnostics(int startPos, int endPos) { + if (startPos == Position.NOPOS || endPos == Position.NOPOS) return; JCCompilationUnit self = (JCCompilationUnit) top().get(); new CompilerMessageSuppressor(getContext()).removeAllBetween(self.sourcefile, startPos, endPos); } diff --git a/src/core/lombok/javac/JavacResolution.java b/src/core/lombok/javac/JavacResolution.java index 6ff6efe7..a8cdfca3 100644 --- a/src/core/lombok/javac/JavacResolution.java +++ b/src/core/lombok/javac/JavacResolution.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2021 The Project Lombok Authors. + * Copyright (C) 2011-2025 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -416,7 +416,7 @@ public class JavacResolution { } private static int compare(Name a, Name b) { - return a.compareTo(b); + return a.toString().compareTo(b.toString()); } private static boolean isLocalType(TypeSymbol symbol) { @@ -469,7 +469,7 @@ public class JavacResolution { winLevel = level; continue; } - if (compare(winner.tsym.getQualifiedName(), t.tsym.getQualifiedName()) < 0) winner = t; + if (compare(winner.tsym.getQualifiedName(), t.tsym.getQualifiedName()) > 0) winner = t; } if (winner == null) return createJavaLangObject(ast); return typeToJCTree(winner, ast, allowCompound, allowVoid, allowCapture); diff --git a/src/utils/lombok/permit/Permit.java b/src/utils/lombok/permit/Permit.java index d58a35e6..36e38bcb 100644 --- a/src/utils/lombok/permit/Permit.java +++ b/src/utils/lombok/permit/Permit.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2021 The Project Lombok Authors. + * Copyright (C) 2018-2025 The Project Lombok Authors. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -165,6 +165,14 @@ public class Permit { return setAccessible(c.getDeclaredConstructor(parameterTypes)); } + public static Constructor permissiveGetConstructor(Class c, Class... parameterTypes) { + try { + return getConstructor(c, parameterTypes); + } catch (Exception ignore) { + return null; + } + } + private static Object reflectiveStaticFieldAccess(Class c, String fName) { try { Field f = c.getDeclaredField(fName); diff --git a/test/transform/resource/after-delombok/ExtensionMethodInLambda.java b/test/transform/resource/after-delombok/ExtensionMethodInLambda.java index 56f374df..99f03234 100644 --- a/test/transform/resource/after-delombok/ExtensionMethodInLambda.java +++ b/test/transform/resource/after-delombok/ExtensionMethodInLambda.java @@ -2,6 +2,8 @@ import java.util.function.Function; public class ExtensionMethodInLambda { + private static final Function testStatic = s -> ExtensionMethodInLambda.Extensions.reverse(s); + public void testSimple() { String test = "test"; test = ExtensionMethodInLambda.Extensions.map(test, s -> ExtensionMethodInLambda.Extensions.reverse(s)); diff --git a/test/transform/resource/after-ecj/ExtensionMethodInLambda.java b/test/transform/resource/after-ecj/ExtensionMethodInLambda.java index ef2b2cac..2d1a4e95 100644 --- a/test/transform/resource/after-ecj/ExtensionMethodInLambda.java +++ b/test/transform/resource/after-ecj/ExtensionMethodInLambda.java @@ -15,6 +15,9 @@ public @ExtensionMethod(value = ExtensionMethodInLambda.Extensions.class) class return "0"; } } + private static final Function testStatic = ( s) -> ExtensionMethodInLambda.Extensions.reverse(s); + () { + } public ExtensionMethodInLambda() { super(); } diff --git a/test/transform/resource/before/ExtensionMethodInLambda.java b/test/transform/resource/before/ExtensionMethodInLambda.java index c441a924..c89933f5 100644 --- a/test/transform/resource/before/ExtensionMethodInLambda.java +++ b/test/transform/resource/before/ExtensionMethodInLambda.java @@ -4,6 +4,8 @@ import lombok.experimental.ExtensionMethod; @ExtensionMethod(value = ExtensionMethodInLambda.Extensions.class) public class ExtensionMethodInLambda { + private static final Function testStatic = s -> s.reverse(); + public void testSimple() { String test = "test"; test = test.map(s -> s.reverse()); diff --git a/test/transform/resource/messages-delombok/ExtensionMethodInLambda.java.messages b/test/transform/resource/messages-delombok/ExtensionMethodInLambda.java.messages index 7605def9..70d7a899 100644 --- a/test/transform/resource/messages-delombok/ExtensionMethodInLambda.java.messages +++ b/test/transform/resource/messages-delombok/ExtensionMethodInLambda.java.messages @@ -1 +1 @@ -19 cannot find symbol symbol: method invalid((s)->s.reverse()) location: variable test of type java.lang.String \ No newline at end of file +21 cannot find symbol symbol: method invalid((s)->s.reverse()) location: variable test of type java.lang.String \ No newline at end of file diff --git a/test/transform/resource/messages-delombok/ValInvalidParameter.java.messages b/test/transform/resource/messages-delombok/ValInvalidParameter.java.messages index da0df315..63b2ee1e 100644 --- a/test/transform/resource/messages-delombok/ValInvalidParameter.java.messages +++ b/test/transform/resource/messages-delombok/ValInvalidParameter.java.messages @@ -1 +1,7 @@ +6 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved +7 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved +8 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved +9 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved +10 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved +11 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved 12 Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved \ No newline at end of file diff --git a/test/transform/resource/messages-ecj/ExtensionMethodInLambda.java.messages b/test/transform/resource/messages-ecj/ExtensionMethodInLambda.java.messages index 56888c34..879ae231 100644 --- a/test/transform/resource/messages-ecj/ExtensionMethodInLambda.java.messages +++ b/test/transform/resource/messages-ecj/ExtensionMethodInLambda.java.messages @@ -1 +1 @@ -19 The method invalid(( s) -> {}) is undefined for the type String +21 The method invalid(( s) -> {}) is undefined for the type String diff --git a/test/transform/resource/messages-idempotent/ExtensionMethodInLambda.java.messages b/test/transform/resource/messages-idempotent/ExtensionMethodInLambda.java.messages index 15d70875..7605def9 100644 --- a/test/transform/resource/messages-idempotent/ExtensionMethodInLambda.java.messages +++ b/test/transform/resource/messages-idempotent/ExtensionMethodInLambda.java.messages @@ -1 +1 @@ -17 cannot find symbol symbol: method invalid((s)->s.reverse()) location: variable test of type java.lang.String \ No newline at end of file +19 cannot find symbol symbol: method invalid((s)->s.reverse()) location: variable test of type java.lang.String \ No newline at end of file From 09cd1c72b4235ac360045e42393d085061882a03 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Fri, 17 Oct 2025 12:26:35 +0200 Subject: [PATCH 08/19] [ci] Add JDK 25 to docker tests --- .github/workflows/ant.yml | 8 ++++---- docker/ant/files/{jdk-23 => jdk-25}/classpath/build.xml | 0 docker/ant/files/{jdk-23 => jdk-25}/modules/build.xml | 0 docker/maven/files/{jdk-23 => jdk-25}/classpath/pom.xml | 2 +- docker/maven/files/{jdk-23 => jdk-25}/modules/pom.xml | 2 +- docker/provision/jdk/java-23.sh | 4 ---- docker/provision/jdk/java-25.sh | 4 ++++ 7 files changed, 10 insertions(+), 10 deletions(-) rename docker/ant/files/{jdk-23 => jdk-25}/classpath/build.xml (100%) rename docker/ant/files/{jdk-23 => jdk-25}/modules/build.xml (100%) rename docker/maven/files/{jdk-23 => jdk-25}/classpath/pom.xml (98%) rename docker/maven/files/{jdk-23 => jdk-25}/modules/pom.xml (98%) delete mode 100755 docker/provision/jdk/java-23.sh create mode 100755 docker/provision/jdk/java-25.sh diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml index 0c5cc94d..de5c352f 100644 --- a/.github/workflows/ant.yml +++ b/.github/workflows/ant.yml @@ -150,10 +150,10 @@ jobs: needs: build strategy: matrix: - jdk: [8, 11, 17, 21, 23] + jdk: [8, 11, 17, 21, 25] tool: - {name: "maven", cmd: "mvn compile"} - - {name: "gradle", cmd: "gradle assemble"} + - {name: "gradle", cmd: "gradle assemble", buildArgs: {"25": "--build-arg gradle=9.1.0"}} - {name: "ant", cmd: "ant dist"} - {name: "bazel", cmd: "bazel build //:ProjectRunner"} fail-fast: false @@ -170,7 +170,7 @@ jobs: - name: Build container working-directory: ./docker - run: docker build --build-arg jdk=${{ matrix.jdk }} -t $IMAGE_NAME -f ${{ matrix.tool.name }}/Dockerfile . + run: docker build --build-arg jdk=${{ matrix.jdk }} ${{ matrix.tool.buildArgs[matrix.jdk] }} -t $IMAGE_NAME -f ${{ matrix.tool.name }}/Dockerfile . - name: Compile in container run: docker run --entrypoint="" -v $(pwd)/lombok.jar:/workspace/lombok.jar $IMAGE_NAME /bin/bash -c "cd classpath; ${{ matrix.tool.cmd }}" @@ -180,7 +180,7 @@ jobs: needs: build strategy: matrix: - jdk: [8, 11, 17, 21, 23] + jdk: [8, 11, 17, 21, 25] dir: [compileTests] fail-fast: false diff --git a/docker/ant/files/jdk-23/classpath/build.xml b/docker/ant/files/jdk-25/classpath/build.xml similarity index 100% rename from docker/ant/files/jdk-23/classpath/build.xml rename to docker/ant/files/jdk-25/classpath/build.xml diff --git a/docker/ant/files/jdk-23/modules/build.xml b/docker/ant/files/jdk-25/modules/build.xml similarity index 100% rename from docker/ant/files/jdk-23/modules/build.xml rename to docker/ant/files/jdk-25/modules/build.xml diff --git a/docker/maven/files/jdk-23/classpath/pom.xml b/docker/maven/files/jdk-25/classpath/pom.xml similarity index 98% rename from docker/maven/files/jdk-23/classpath/pom.xml rename to docker/maven/files/jdk-25/classpath/pom.xml index 52df5b57..b96de94f 100644 --- a/docker/maven/files/jdk-23/classpath/pom.xml +++ b/docker/maven/files/jdk-25/classpath/pom.xml @@ -7,7 +7,7 @@ UTF-8 - 23 + 25 diff --git a/docker/maven/files/jdk-23/modules/pom.xml b/docker/maven/files/jdk-25/modules/pom.xml similarity index 98% rename from docker/maven/files/jdk-23/modules/pom.xml rename to docker/maven/files/jdk-25/modules/pom.xml index 8c673a42..f822c186 100644 --- a/docker/maven/files/jdk-23/modules/pom.xml +++ b/docker/maven/files/jdk-25/modules/pom.xml @@ -7,7 +7,7 @@ UTF-8 - 23 + 25 diff --git a/docker/provision/jdk/java-23.sh b/docker/provision/jdk/java-23.sh deleted file mode 100755 index 5c489e28..00000000 --- a/docker/provision/jdk/java-23.sh +++ /dev/null @@ -1,4 +0,0 @@ -apt-get update && apt-get install -y wget -wget https://download.java.net/java/GA/jdk23/3c5b90190c68498b986a97f276efd28a/37/GPL/openjdk-23_linux-x64_bin.tar.gz -O jdk.tar.gz -tar -xzf jdk.tar.gz -C /opt/ -mv /opt/jdk-23 /opt/jdk diff --git a/docker/provision/jdk/java-25.sh b/docker/provision/jdk/java-25.sh new file mode 100755 index 00000000..a7d923d2 --- /dev/null +++ b/docker/provision/jdk/java-25.sh @@ -0,0 +1,4 @@ +apt-get update && apt-get install -y wget +wget https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25%2B36/OpenJDK25U-jdk_x64_linux_hotspot_25_36.tar.gz -O jdk.tar.gz +tar -xzf jdk.tar.gz -C /opt/ +mv /opt/jdk-25+36 /opt/jdk \ No newline at end of file From e3c9e3d9ffed6957c45f4c0a045fb0b91d13f8a0 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 01:18:19 -0400 Subject: [PATCH 09/19] Add transforms to include checks for transient field --- .../JacksonizedAccessorsTransient.java | 20 +++++++++++++++++++ .../JacksonizedAccessorsTransient.java | 16 +++++++++++++++ .../before/JacksonizedAccessorsTransient.java | 7 +++++++ 3 files changed, 43 insertions(+) create mode 100644 test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java create mode 100644 test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java create mode 100644 test/transform/resource/before/JacksonizedAccessorsTransient.java diff --git a/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java b/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java new file mode 100644 index 00000000..4db7280c --- /dev/null +++ b/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java @@ -0,0 +1,20 @@ +public class JacksonizedAccessorsTransient { + @com.fasterxml.jackson.annotation.JsonIgnore + private transient int intValue; + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public int intValue() { + return this.intValue; + } + /** + * @return {@code this}. + */ + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public JacksonizedAccessorsTransient intValue(final int intValue) { + this.intValue = intValue; + return this; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java b/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java new file mode 100644 index 00000000..ad318f73 --- /dev/null +++ b/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java @@ -0,0 +1,16 @@ +public @lombok.extern.jackson.Jacksonized @lombok.experimental.Accessors(fluent = true) @lombok.Getter @lombok.Setter class JacksonizedAccessorsTransient { + private transient @com.fasterxml.jackson.annotation.JsonIgnore int intValue; + public JacksonizedAccessorsTransient() { + super(); + } + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated int intValue() { + return this.intValue; + } + /** + * @return {@code this}. + */ + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated JacksonizedAccessorsTransient intValue(final int intValue) { + this.intValue = intValue; + return this; + } +} \ No newline at end of file diff --git a/test/transform/resource/before/JacksonizedAccessorsTransient.java b/test/transform/resource/before/JacksonizedAccessorsTransient.java new file mode 100644 index 00000000..6b04e62c --- /dev/null +++ b/test/transform/resource/before/JacksonizedAccessorsTransient.java @@ -0,0 +1,7 @@ +@lombok.extern.jackson.Jacksonized +@lombok.experimental.Accessors(fluent = true) +@lombok.Getter +@lombok.Setter +public class JacksonizedAccessorsTransient { + private transient int intValue; +} \ No newline at end of file From 3ad435f08241bfd25d01c0519ec3fc1f685ef7d9 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 01:33:31 -0400 Subject: [PATCH 10/19] Refactor eclipse handler --- .../eclipse/handlers/HandleJacksonized.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/core/lombok/eclipse/handlers/HandleJacksonized.java b/src/core/lombok/eclipse/handlers/HandleJacksonized.java index 0a3f5dba..da45c981 100644 --- a/src/core/lombok/eclipse/handlers/HandleJacksonized.java +++ b/src/core/lombok/eclipse/handlers/HandleJacksonized.java @@ -62,9 +62,21 @@ import lombok.spi.Provides; @HandlerPriority(-512) // Above Handle(Super)Builder's level (builders must be already generated). public class HandleJacksonized extends EclipseAnnotationHandler { - private static final char[][] JSON_POJO_BUILDER_ANNOTATION = Eclipse.fromQualifiedName("com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder"); - private static final char[][] JSON_DESERIALIZE_ANNOTATION = Eclipse.fromQualifiedName("com.fasterxml.jackson.databind.annotation.JsonDeserialize"); - private static final char[][] JSON_PROPERTY_ANNOTATION = Eclipse.fromQualifiedName("com.fasterxml.jackson.annotation.JsonProperty"); + private static enum JacksonAnnotations { + JSON_POJO_BUILDER("com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder"), + JSON_DESERIALIZE("com.fasterxml.jackson.databind.annotation.JsonDeserialize"), + JSON_PROPERTY("com.fasterxml.jackson.annotation.JsonProperty"); + + private final String qualifiedName; + private final char[][] annotation; + private JacksonAnnotations(final String qualifiedName) { + this.qualifiedName = qualifiedName; + this.annotation = Eclipse.fromQualifiedName(qualifiedName); + } + private boolean isAnnotating(EclipseNode node) { + return hasAnnotation(this.qualifiedName, node); + } + } @Override public void handle(AnnotationValues annotation, Annotation ast, EclipseNode annotationNode) { handleExperimentalFlagUsage(annotationNode, ConfigurationKeys.JACKSONIZED_FLAG_USAGE, "@Jacksonized"); @@ -132,7 +144,7 @@ public class HandleJacksonized extends EclipseAnnotationHandler { } // Insert @JsonDeserialize on annotated class. - if (hasAnnotation("com.fasterxml.jackson.databind.annotation.JsonDeserialize", tdNode)) { + if (JacksonAnnotations.JSON_DESERIALIZE.isAnnotating(tdNode)) { annotationNode.addError("@JsonDeserialize already exists on class. Either delete @JsonDeserialize, or remove @Jacksonized and manually configure Jackson."); return; } @@ -140,7 +152,7 @@ public class HandleJacksonized extends EclipseAnnotationHandler { TypeReference builderClassExpression = namePlusTypeParamsToTypeReference(builderClassNode, null, p); ClassLiteralAccess builderClassLiteralAccess = new ClassLiteralAccess(td.sourceEnd, builderClassExpression); MemberValuePair builderMvp = new MemberValuePair("builder".toCharArray(), td.sourceStart, td.sourceEnd, builderClassLiteralAccess); - td.annotations = addAnnotation(td, td.annotations, JSON_DESERIALIZE_ANNOTATION, builderMvp); + td.annotations = addAnnotation(td, td.annotations, JacksonAnnotations.JSON_DESERIALIZE.annotation, builderMvp); // Copy annotations from the class to the builder class. Annotation[] copyableAnnotations = findJacksonAnnotationsOnClass(td, tdNode); @@ -151,7 +163,7 @@ public class HandleJacksonized extends EclipseAnnotationHandler { MemberValuePair withPrefixMvp = new MemberValuePair("withPrefix".toCharArray(), builderClass.sourceStart, builderClass.sourceEnd, withPrefixLiteral); StringLiteral buildMethodNameLiteral = new StringLiteral(buildMethodName.toCharArray(), builderClass.sourceStart, builderClass.sourceEnd, 0); MemberValuePair buildMethodNameMvp = new MemberValuePair("buildMethodName".toCharArray(), builderClass.sourceStart, builderClass.sourceEnd, buildMethodNameLiteral); - builderClass.annotations = addAnnotation(builderClass, builderClass.annotations, JSON_POJO_BUILDER_ANNOTATION, withPrefixMvp, buildMethodNameMvp); + builderClass.annotations = addAnnotation(builderClass, builderClass.annotations, JacksonAnnotations.JSON_POJO_BUILDER.annotation, withPrefixMvp, buildMethodNameMvp); // @SuperBuilder? Make it package-private! if (superBuilderAnnotationNode != null) @@ -181,12 +193,12 @@ public class HandleJacksonized extends EclipseAnnotationHandler { } private void createJsonPropertyForField(EclipseNode fieldNode, EclipseNode annotationNode) { - if (hasAnnotation("com.fasterxml.jackson.annotation.JsonProperty", fieldNode)) return; + if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(fieldNode)) return; ASTNode astNode = fieldNode.get(); if (astNode instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration)astNode; StringLiteral fieldName = new StringLiteral(fd.name, 0, 0, 0); - ((FieldDeclaration) astNode).annotations = addAnnotation(fieldNode.get(), fd.annotations, JSON_PROPERTY_ANNOTATION, fieldName); + ((FieldDeclaration) astNode).annotations = addAnnotation(fieldNode.get(), fd.annotations, JacksonAnnotations.JSON_PROPERTY.annotation, fieldName); } } From fa3030211e07aea307225667d0b7e3ac0712176e Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 01:50:30 -0400 Subject: [PATCH 11/19] Refactor javac handlers --- .../javac/handlers/HandleJacksonized.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/core/lombok/javac/handlers/HandleJacksonized.java b/src/core/lombok/javac/handlers/HandleJacksonized.java index 689e3d6d..61400559 100644 --- a/src/core/lombok/javac/handlers/HandleJacksonized.java +++ b/src/core/lombok/javac/handlers/HandleJacksonized.java @@ -60,6 +60,24 @@ import lombok.spi.Provides; @HandlerPriority(-512) // Above Handle(Super)Builder's level (builders must be already generated), but before all handlers generating getters/setters. public class HandleJacksonized extends JavacAnnotationHandler { + private static enum JacksonAnnotations { + JSON_POJO_BUILDER("com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder"), + JSON_DESERIALIZE("com.fasterxml.jackson.databind.annotation.JsonDeserialize"), + JSON_PROPERTY("com.fasterxml.jackson.annotation.JsonProperty"), + JSON_IGNORE("com.fasterxml.jackson.annotation.JsonIgnore"); + + private final String qualifiedName; + private final String[] chainedDots; + private JacksonAnnotations(final String qualifiedName) { + this.qualifiedName = qualifiedName; + this.chainedDots = qualifiedName.split("\\."); + } + + private boolean isAnnotating(JavacNode node) { + return hasAnnotation(this.qualifiedName, node); + } + } + @Override public void handle(AnnotationValues annotation, JCAnnotation ast, JavacNode annotationNode) { handleExperimentalFlagUsage(annotationNode, ConfigurationKeys.JACKSONIZED_FLAG_USAGE, "@Jacksonized"); @@ -109,12 +127,12 @@ public class HandleJacksonized extends JavacAnnotationHandler { } private void createJsonPropertyForField(JavacNode fieldNode, JavacNode annotationNode) { - if (hasAnnotation("com.fasterxml.jackson.annotation.JsonProperty", fieldNode)) { + if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(fieldNode)) { return; } JavacTreeMaker maker = fieldNode.getTreeMaker(); - JCExpression jsonPropertyType = chainDots(fieldNode, "com", "fasterxml", "jackson", "annotation", "JsonProperty"); + JCExpression jsonPropertyType = chainDots(fieldNode, JacksonAnnotations.JSON_PROPERTY.chainedDots); JCAnnotation annotationJsonProperty = maker.Annotation(jsonPropertyType, List.of(maker.Literal(fieldNode.getName()))); recursiveSetGeneratedBy(annotationJsonProperty, annotationNode); JCVariableDecl fieldDecl = ((JCVariableDecl)fieldNode.get()); @@ -164,11 +182,11 @@ public class HandleJacksonized extends JavacAnnotationHandler { } // Insert @JsonDeserialize on annotated class. - if (hasAnnotation("com.fasterxml.jackson.databind.annotation.JsonDeserialize", tdNode)) { + if (JacksonAnnotations.JSON_DESERIALIZE.isAnnotating(tdNode)) { annotationNode.addError("@JsonDeserialize already exists on class. Either delete @JsonDeserialize, or remove @Jacksonized and manually configure Jackson."); return; } - JCExpression jsonDeserializeType = chainDots(annotatedNode, "com", "fasterxml", "jackson", "databind", "annotation", "JsonDeserialize"); + JCExpression jsonDeserializeType = chainDots(annotatedNode, JacksonAnnotations.JSON_DESERIALIZE.chainedDots); JCExpression builderClassExpression = namePlusTypeParamsToTypeReference(maker, tdNode, annotationNode.toName(builderClassName), false, List.nil()); JCFieldAccess builderClassReference = maker.Select(builderClassExpression, annotatedNode.toName("class")); JCExpression assign = maker.Assign(maker.Ident(annotationNode.toName("builder")), builderClassReference); @@ -185,7 +203,7 @@ public class HandleJacksonized extends JavacAnnotationHandler { builderClass.mods.annotations = builderClass.mods.annotations.appendList(copiedAnnotations); // Insert @JsonPOJOBuilder on the builder class. - JCExpression jsonPOJOBuilderType = chainDots(annotatedNode, "com", "fasterxml", "jackson", "databind", "annotation", "JsonPOJOBuilder"); + JCExpression jsonPOJOBuilderType = chainDots(annotatedNode, JacksonAnnotations.JSON_POJO_BUILDER.chainedDots); JCExpression withPrefixExpr = maker.Assign(maker.Ident(annotationNode.toName("withPrefix")), maker.Literal(setPrefix)); JCExpression buildMethodNameExpr = maker.Assign(maker.Ident(annotationNode.toName("buildMethodName")), maker.Literal(buildMethodName)); JCAnnotation annotationJsonPOJOBuilder = maker.Annotation(jsonPOJOBuilderType, List.of(withPrefixExpr, buildMethodNameExpr)); From 3cdc80050e6f70e341400790225420028353621c Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 02:07:32 -0400 Subject: [PATCH 12/19] Implement eclipse handler --- .../eclipse/handlers/HandleJacksonized.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/core/lombok/eclipse/handlers/HandleJacksonized.java b/src/core/lombok/eclipse/handlers/HandleJacksonized.java index da45c981..b6f5c68a 100644 --- a/src/core/lombok/eclipse/handlers/HandleJacksonized.java +++ b/src/core/lombok/eclipse/handlers/HandleJacksonized.java @@ -65,7 +65,9 @@ public class HandleJacksonized extends EclipseAnnotationHandler { private static enum JacksonAnnotations { JSON_POJO_BUILDER("com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder"), JSON_DESERIALIZE("com.fasterxml.jackson.databind.annotation.JsonDeserialize"), - JSON_PROPERTY("com.fasterxml.jackson.annotation.JsonProperty"); + JSON_PROPERTY("com.fasterxml.jackson.annotation.JsonProperty"), + JSON_IGNORE("com.fasterxml.jackson.annotation.JsonIgnore"); + private final String qualifiedName; private final char[][] annotation; @@ -186,7 +188,8 @@ public class HandleJacksonized extends EclipseAnnotationHandler { // Add @JsonProperty to all fields. It will be automatically copied to the getter/setters later. for (EclipseNode eclipseNode : tdNode.down()) { if (eclipseNode.getKind() == Kind.FIELD) { - createJsonPropertyForField(eclipseNode, annotationNode); + if (eclipseNode.isTransient()) createJsonIgnoreForField(eclipseNode, annotationNode); + else createJsonPropertyForField(eclipseNode, annotationNode); } } tdNode.rebuild(); @@ -202,6 +205,15 @@ public class HandleJacksonized extends EclipseAnnotationHandler { } } + private void createJsonIgnoreForField(EclipseNode fieldNode, EclipseNode annotationNode) { + if (JacksonAnnotations.JSON_IGNORE.isAnnotating(fieldNode)) return; + ASTNode astNode = fieldNode.get(); + if (astNode instanceof FieldDeclaration) { + FieldDeclaration fd = (FieldDeclaration)astNode; + ((FieldDeclaration) astNode).annotations = addAnnotation(fieldNode.get(), fd.annotations, JacksonAnnotations.JSON_IGNORE.annotation); + } + } + private String getBuilderClassName(Annotation ast, EclipseNode annotationNode, EclipseNode annotatedNode, TypeDeclaration td, AnnotationValues builderAnnotation) { String builderClassName = builderAnnotation != null ? builderAnnotation.getInstance().builderClassName() : null; From ce9a103dd2d695f2f5af9efddb0d33932c84af25 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Thu, 18 Sep 2025 02:11:57 -0400 Subject: [PATCH 13/19] Implement javac handler --- .../javac/handlers/HandleJacksonized.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/core/lombok/javac/handlers/HandleJacksonized.java b/src/core/lombok/javac/handlers/HandleJacksonized.java index 61400559..6a43abe4 100644 --- a/src/core/lombok/javac/handlers/HandleJacksonized.java +++ b/src/core/lombok/javac/handlers/HandleJacksonized.java @@ -118,10 +118,12 @@ public class HandleJacksonized extends JavacAnnotationHandler { return; } - // Add @JsonProperty to all fields. It will be automatically copied to the getter/setters later. + // Add @JsonProperty to all non-transient fields. It will be automatically copied to the getter/setters later. + // Add @JsonIgnore to all transient fields. It will be automatically copied to the getter/setters later. for (JavacNode javacNode : tdNode.down()) { if (javacNode.getKind() == Kind.FIELD) { - createJsonPropertyForField(javacNode, annotationNode); + if (javacNode.isTransient()) createJsonIgnoreForField(javacNode, annotationNode); + else createJsonPropertyForField(javacNode, annotationNode); } } } @@ -139,6 +141,19 @@ public class HandleJacksonized extends JavacAnnotationHandler { fieldDecl.mods.annotations = fieldDecl.mods.annotations.append(annotationJsonProperty); } + private void createJsonIgnoreForField(JavacNode fieldNode, JavacNode annotationNode) { + if (JacksonAnnotations.JSON_IGNORE.isAnnotating(fieldNode)) { + return; + } + JavacTreeMaker maker = fieldNode.getTreeMaker(); + + JCExpression jsonPropertyType = chainDots(fieldNode, JacksonAnnotations.JSON_IGNORE.chainedDots); + JCAnnotation annotationJsonProperty = maker.Annotation(jsonPropertyType, List.nil()); + recursiveSetGeneratedBy(annotationJsonProperty, annotationNode); + JCVariableDecl fieldDecl = ((JCVariableDecl)fieldNode.get()); + fieldDecl.mods.annotations = fieldDecl.mods.annotations.append(annotationJsonProperty); + } + private void handleJacksonizedBuilder(JavacNode annotationNode, JavacNode annotatedNode, JavacNode tdNode, JCClassDecl td, JavacNode builderAnnotationNode, JavacNode superBuilderAnnotationNode) { if (builderAnnotationNode != null && superBuilderAnnotationNode != null) { annotationNode.addError("@Jacksonized cannot process both @Builder and @SuperBuilder on the same class."); From f5cf267d023bea2d73abb6ce512939252458c9d7 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Tue, 30 Sep 2025 11:50:02 -0400 Subject: [PATCH 14/19] Add fields with `@JsonIgore` to test case --- .../JacksonizedAccessorsTransient.java | 42 +++++++++++++++++++ .../JacksonizedAccessorsTransient.java | 26 +++++++++++- .../before/JacksonizedAccessorsTransient.java | 2 + 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java b/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java index 4db7280c..af6f369d 100644 --- a/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java +++ b/test/transform/resource/after-delombok/JacksonizedAccessorsTransient.java @@ -1,12 +1,32 @@ public class JacksonizedAccessorsTransient { @com.fasterxml.jackson.annotation.JsonIgnore private transient int intValue; + @com.fasterxml.jackson.annotation.JsonIgnore + private transient long longValue; + @com.fasterxml.jackson.annotation.JsonIgnore + private double doubleValue; + @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated public int intValue() { return this.intValue; } + + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public long longValue() { + return this.longValue; + } + + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public double doubleValue() { + return this.doubleValue; + } + /** * @return {@code this}. */ @@ -17,4 +37,26 @@ public class JacksonizedAccessorsTransient { this.intValue = intValue; return this; } + + /** + * @return {@code this}. + */ + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public JacksonizedAccessorsTransient longValue(final long longValue) { + this.longValue = longValue; + return this; + } + + /** + * @return {@code this}. + */ + @com.fasterxml.jackson.annotation.JsonIgnore + @java.lang.SuppressWarnings("all") + @lombok.Generated + public JacksonizedAccessorsTransient doubleValue(final double doubleValue) { + this.doubleValue = doubleValue; + return this; + } } \ No newline at end of file diff --git a/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java b/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java index ad318f73..b9227f61 100644 --- a/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java +++ b/test/transform/resource/after-ecj/JacksonizedAccessorsTransient.java @@ -1,16 +1,38 @@ public @lombok.extern.jackson.Jacksonized @lombok.experimental.Accessors(fluent = true) @lombok.Getter @lombok.Setter class JacksonizedAccessorsTransient { private transient @com.fasterxml.jackson.annotation.JsonIgnore int intValue; + private transient @com.fasterxml.jackson.annotation.JsonIgnore long longValue; + private @com.fasterxml.jackson.annotation.JsonIgnore double doubleValue; public JacksonizedAccessorsTransient() { super(); } - public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated int intValue() { + public @java.lang.SuppressWarnings("all") @lombok.Generated int intValue() { return this.intValue; } + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated long longValue() { + return this.longValue; + } + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated double doubleValue() { + return this.doubleValue; + } /** * @return {@code this}. */ - public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated JacksonizedAccessorsTransient intValue(final int intValue) { + public @java.lang.SuppressWarnings("all") @lombok.Generated JacksonizedAccessorsTransient intValue(final int intValue) { this.intValue = intValue; return this; } + /** + * @return {@code this}. + */ + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated JacksonizedAccessorsTransient longValue(final long longValue) { + this.longValue = longValue; + return this; + } + /** + * @return {@code this}. + */ + public @com.fasterxml.jackson.annotation.JsonIgnore @java.lang.SuppressWarnings("all") @lombok.Generated JacksonizedAccessorsTransient doubleValue(final double doubleValue) { + this.doubleValue = doubleValue; + return this; + } } \ No newline at end of file diff --git a/test/transform/resource/before/JacksonizedAccessorsTransient.java b/test/transform/resource/before/JacksonizedAccessorsTransient.java index 6b04e62c..ca5281f0 100644 --- a/test/transform/resource/before/JacksonizedAccessorsTransient.java +++ b/test/transform/resource/before/JacksonizedAccessorsTransient.java @@ -4,4 +4,6 @@ @lombok.Setter public class JacksonizedAccessorsTransient { private transient int intValue; + @com.fasterxml.jackson.annotation.JsonIgnore private transient long longValue; + @com.fasterxml.jackson.annotation.JsonIgnore private double doubleValue; } \ No newline at end of file From 5ceb5f5e89b27817b4a577a66fae2e04b6c545e5 Mon Sep 17 00:00:00 2001 From: Liam Pace <146035497+liampace@users.noreply.github.com> Date: Tue, 30 Sep 2025 11:50:25 -0400 Subject: [PATCH 15/19] Update handlers to account for pre-existing `@JsonIgnore` annotations --- .../eclipse/handlers/HandleJacksonized.java | 12 ++++++++---- .../lombok/javac/handlers/HandleJacksonized.java | 16 ++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/core/lombok/eclipse/handlers/HandleJacksonized.java b/src/core/lombok/eclipse/handlers/HandleJacksonized.java index b6f5c68a..d148d8b7 100644 --- a/src/core/lombok/eclipse/handlers/HandleJacksonized.java +++ b/src/core/lombok/eclipse/handlers/HandleJacksonized.java @@ -188,15 +188,20 @@ public class HandleJacksonized extends EclipseAnnotationHandler { // Add @JsonProperty to all fields. It will be automatically copied to the getter/setters later. for (EclipseNode eclipseNode : tdNode.down()) { if (eclipseNode.getKind() == Kind.FIELD) { - if (eclipseNode.isTransient()) createJsonIgnoreForField(eclipseNode, annotationNode); - else createJsonPropertyForField(eclipseNode, annotationNode); + if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(eclipseNode) || + JacksonAnnotations.JSON_IGNORE.isAnnotating(eclipseNode)) { + return; + } else if (eclipseNode.isTransient()) { + createJsonIgnoreForField(eclipseNode, annotationNode); + } else { + createJsonPropertyForField(eclipseNode, annotationNode); + } } } tdNode.rebuild(); } private void createJsonPropertyForField(EclipseNode fieldNode, EclipseNode annotationNode) { - if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(fieldNode)) return; ASTNode astNode = fieldNode.get(); if (astNode instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration)astNode; @@ -206,7 +211,6 @@ public class HandleJacksonized extends EclipseAnnotationHandler { } private void createJsonIgnoreForField(EclipseNode fieldNode, EclipseNode annotationNode) { - if (JacksonAnnotations.JSON_IGNORE.isAnnotating(fieldNode)) return; ASTNode astNode = fieldNode.get(); if (astNode instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration)astNode; diff --git a/src/core/lombok/javac/handlers/HandleJacksonized.java b/src/core/lombok/javac/handlers/HandleJacksonized.java index 6a43abe4..7cfabfed 100644 --- a/src/core/lombok/javac/handlers/HandleJacksonized.java +++ b/src/core/lombok/javac/handlers/HandleJacksonized.java @@ -122,16 +122,19 @@ public class HandleJacksonized extends JavacAnnotationHandler { // Add @JsonIgnore to all transient fields. It will be automatically copied to the getter/setters later. for (JavacNode javacNode : tdNode.down()) { if (javacNode.getKind() == Kind.FIELD) { - if (javacNode.isTransient()) createJsonIgnoreForField(javacNode, annotationNode); - else createJsonPropertyForField(javacNode, annotationNode); + if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(javacNode) || + JacksonAnnotations.JSON_IGNORE.isAnnotating(javacNode)) { + return; + } else if (javacNode.isTransient()) { + createJsonIgnoreForField(javacNode, annotationNode); + } else { + createJsonPropertyForField(javacNode, annotationNode); + } } } } private void createJsonPropertyForField(JavacNode fieldNode, JavacNode annotationNode) { - if (JacksonAnnotations.JSON_PROPERTY.isAnnotating(fieldNode)) { - return; - } JavacTreeMaker maker = fieldNode.getTreeMaker(); JCExpression jsonPropertyType = chainDots(fieldNode, JacksonAnnotations.JSON_PROPERTY.chainedDots); @@ -142,9 +145,6 @@ public class HandleJacksonized extends JavacAnnotationHandler { } private void createJsonIgnoreForField(JavacNode fieldNode, JavacNode annotationNode) { - if (JacksonAnnotations.JSON_IGNORE.isAnnotating(fieldNode)) { - return; - } JavacTreeMaker maker = fieldNode.getTreeMaker(); JCExpression jsonPropertyType = chainDots(fieldNode, JacksonAnnotations.JSON_IGNORE.chainedDots); From d5a822de070eab8055d816af974f4fb26c457305 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 29 Jan 2026 21:27:09 +0100 Subject: [PATCH 16/19] [trivial] Some esoteric new javac rules caused a compiler error fixed by making an erstwhile private method package private. --- .../lombok/core/configuration/ConfigurationFile.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/lombok/core/configuration/ConfigurationFile.java b/src/core/lombok/core/configuration/ConfigurationFile.java index 8e4e687c..a510368c 100644 --- a/src/core/lombok/core/configuration/ConfigurationFile.java +++ b/src/core/lombok/core/configuration/ConfigurationFile.java @@ -97,7 +97,7 @@ public abstract class ConfigurationFile { return file.exists() && file.isFile(); } - private static String read(InputStream is) throws IOException { + static String read(InputStream is) throws IOException { byte[] b = buffers.get(); ByteArrayOutputStream out = new ByteArrayOutputStream(); while (true) { @@ -111,7 +111,7 @@ public abstract class ConfigurationFile { private static class RegularConfigurationFile extends ConfigurationFile { private final File file; private ConfigurationFile parent; - + private RegularConfigurationFile(File file) { super(file.getPath()); this.file = file; @@ -172,7 +172,7 @@ public abstract class ConfigurationFile { is.close(); } } - + @Override ConfigurationFile parent() { if (parent == null) { File parentFile = file.getParentFile().getParentFile(); @@ -322,15 +322,15 @@ public abstract class ConfigurationFile { @Override CharSequence contents() throws IOException { return contents; } - + @Override boolean exists() { return true; } - + @Override public ConfigurationFile resolve(String path) { return null; } - + @Override ConfigurationFile parent() { return null; } From 40b306031dc326e7086871a6e53d2c4f6388c38e Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 29 Jan 2026 22:13:37 +0100 Subject: [PATCH 17/19] [changelog] document #3947: JDK25 + ExtensionMethod/val diagnostic issue. --- doc/changelog.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/changelog.markdown b/doc/changelog.markdown index 3428c16e..800fc0d8 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -2,7 +2,7 @@ Lombok Changelog ---------------- ### v1.18.43 "Edgy Guinea Pig" -* No changes since v1.18.42 yet. +* BUGFIX: On JDK25, `val` and `@ExtensionMethod` could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. [#3947](https://github.com/projectlombok/lombok/issues/3947). ### v1.18.42 (September 18th, 2025) * FEATURE: All the various `@Log` annotations now allow you to change their access level (they still default to `private`). [#2280](https://github.com/projectlombok/lombok/issues/2280). Thanks to new contributor Liam Pace! From bff559fffae052ef68e6e03a7149590bc1edda7d Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 29 Jan 2026 22:15:48 +0100 Subject: [PATCH 18/19] [changelog] document #3936: `@Jacksonized`+`transient` now more consistent with the meaning of `transient`. --- doc/changelog.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/changelog.markdown b/doc/changelog.markdown index 800fc0d8..cf6cceda 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -3,6 +3,7 @@ Lombok Changelog ### v1.18.43 "Edgy Guinea Pig" * BUGFIX: On JDK25, `val` and `@ExtensionMethod` could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. [#3947](https://github.com/projectlombok/lombok/issues/3947). +* BUGFIX: `@Jacksonized` + fields marked `transient` would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. [#3936](https://github.com/projectlombok/lombok/issues/3936). ### v1.18.42 (September 18th, 2025) * FEATURE: All the various `@Log` annotations now allow you to change their access level (they still default to `private`). [#2280](https://github.com/projectlombok/lombok/issues/2280). Thanks to new contributor Liam Pace! From f49f0fe78d9c8a0ddce1b5abd1a817ef2eec9e18 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 5 Feb 2026 23:48:44 +0100 Subject: [PATCH 19/19] [test] Remove tests for deprecated `@Logger(access = MODULE)`. They're deprecated: Dealing with suppress warnings when trying to compare output of a delombok process is hard enough as is. If someone somehow uses MODULE, the code will probably work, the deprecation warning tells you to cut it out, and if it breaks, I'm sure somebody will report a bug and we'll fix it maybe one fine day. --- .../resource/after-delombok/LoggerCommonsAccess.java | 7 ------- .../resource/after-delombok/LoggerCustomAccess.java | 7 ------- .../resource/after-delombok/LoggerFloggerAccess.java | 7 ------- .../resource/after-delombok/LoggerJBossLogAccess.java | 7 ------- .../resource/after-delombok/LoggerJulAccess.java | 7 ------- .../resource/after-delombok/LoggerLog4j2Access.java | 7 ------- .../resource/after-delombok/LoggerLog4jAccess.java | 7 ------- .../resource/after-delombok/LoggerSlf4jAccess.java | 7 ------- .../resource/after-delombok/LoggerXSlf4jAccess.java | 7 ------- .../resource/after-ecj/LoggerCommonsAccess.java | 9 --------- .../transform/resource/after-ecj/LoggerCustomAccess.java | 9 --------- .../resource/after-ecj/LoggerFloggerAccess.java | 9 --------- .../resource/after-ecj/LoggerJBossLogAccess.java | 9 --------- test/transform/resource/after-ecj/LoggerJulAccess.java | 9 --------- .../transform/resource/after-ecj/LoggerLog4j2Access.java | 9 --------- test/transform/resource/after-ecj/LoggerLog4jAccess.java | 9 --------- test/transform/resource/after-ecj/LoggerSlf4jAccess.java | 9 --------- .../transform/resource/after-ecj/LoggerXSlf4jAccess.java | 9 --------- test/transform/resource/before/LoggerCommonsAccess.java | 5 ----- test/transform/resource/before/LoggerCustomAccess.java | 5 ----- test/transform/resource/before/LoggerFloggerAccess.java | 5 ----- test/transform/resource/before/LoggerJBossLogAccess.java | 5 ----- test/transform/resource/before/LoggerJulAccess.java | 5 ----- test/transform/resource/before/LoggerLog4j2Access.java | 5 ----- test/transform/resource/before/LoggerLog4jAccess.java | 5 ----- test/transform/resource/before/LoggerSlf4jAccess.java | 5 ----- test/transform/resource/before/LoggerXSlf4jAccess.java | 5 ----- 27 files changed, 189 deletions(-) diff --git a/test/transform/resource/after-delombok/LoggerCommonsAccess.java b/test/transform/resource/after-delombok/LoggerCommonsAccess.java index 5d670398..19ec0e15 100644 --- a/test/transform/resource/after-delombok/LoggerCommonsAccess.java +++ b/test/transform/resource/after-delombok/LoggerCommonsAccess.java @@ -4,13 +4,6 @@ class LoggerCommonsAccessPublic { @lombok.Generated public static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerCommonsAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessModule.class); - } class LoggerCommonsAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerCustomAccess.java b/test/transform/resource/after-delombok/LoggerCustomAccess.java index 26f85ab4..ffe5addd 100644 --- a/test/transform/resource/after-delombok/LoggerCustomAccess.java +++ b/test/transform/resource/after-delombok/LoggerCustomAccess.java @@ -4,13 +4,6 @@ class LoggerCustomAccessPublic { @lombok.Generated public static final MyLogger log = MyLoggerFactory.create(LoggerCustomAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerCustomAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final MyLogger log = MyLoggerFactory.create(LoggerCustomAccessModule.class); - } class LoggerCustomAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerFloggerAccess.java b/test/transform/resource/after-delombok/LoggerFloggerAccess.java index d191d16c..fb912a0c 100644 --- a/test/transform/resource/after-delombok/LoggerFloggerAccess.java +++ b/test/transform/resource/after-delombok/LoggerFloggerAccess.java @@ -4,13 +4,6 @@ class LoggerFloggerAccessPublic { @lombok.Generated public static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); -} -@SuppressWarnings("deprecation") -class LoggerFloggerAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); - } class LoggerFloggerAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerJBossLogAccess.java b/test/transform/resource/after-delombok/LoggerJBossLogAccess.java index c8994e00..3cefe383 100644 --- a/test/transform/resource/after-delombok/LoggerJBossLogAccess.java +++ b/test/transform/resource/after-delombok/LoggerJBossLogAccess.java @@ -4,13 +4,6 @@ class LoggerJBossLogAccessPublic { @lombok.Generated public static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerJBossLogAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessModule.class); - } class LoggerJBossLogAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerJulAccess.java b/test/transform/resource/after-delombok/LoggerJulAccess.java index af50cc72..7fee1575 100644 --- a/test/transform/resource/after-delombok/LoggerJulAccess.java +++ b/test/transform/resource/after-delombok/LoggerJulAccess.java @@ -4,13 +4,6 @@ class LoggerJulAccessPublic { @lombok.Generated public static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessPublic.class.getName()); -} -@SuppressWarnings("deprecation") -class LoggerJulAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessModule.class.getName()); - } class LoggerJulAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerLog4j2Access.java b/test/transform/resource/after-delombok/LoggerLog4j2Access.java index d06f69ff..9b5f1716 100644 --- a/test/transform/resource/after-delombok/LoggerLog4j2Access.java +++ b/test/transform/resource/after-delombok/LoggerLog4j2Access.java @@ -5,13 +5,6 @@ class LoggerLog4j2AccessPublic { @lombok.Generated public static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerLog4j2AccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessModule.class); - } class LoggerLog4j2AccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerLog4jAccess.java b/test/transform/resource/after-delombok/LoggerLog4jAccess.java index f73bc4c8..bdc46624 100644 --- a/test/transform/resource/after-delombok/LoggerLog4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerLog4jAccess.java @@ -4,13 +4,6 @@ class LoggerLog4jAccessPublic { @lombok.Generated public static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerLog4jAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessModule.class); - } class LoggerLog4jAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerSlf4jAccess.java b/test/transform/resource/after-delombok/LoggerSlf4jAccess.java index cffd20cc..0f5576a5 100644 --- a/test/transform/resource/after-delombok/LoggerSlf4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerSlf4jAccess.java @@ -4,13 +4,6 @@ class LoggerSlf4jAccessPublic { @lombok.Generated public static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerSlf4jAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessModule.class); - } class LoggerSlf4jAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java b/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java index 5c59bd27..d3e38667 100644 --- a/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java +++ b/test/transform/resource/after-delombok/LoggerXSlf4jAccess.java @@ -4,13 +4,6 @@ class LoggerXSlf4jAccessPublic { @lombok.Generated public static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessPublic.class); -} -@SuppressWarnings("deprecation") -class LoggerXSlf4jAccessModule { - @java.lang.SuppressWarnings("all") - @lombok.Generated - static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessModule.class); - } class LoggerXSlf4jAccessProtected { @java.lang.SuppressWarnings("all") diff --git a/test/transform/resource/after-ecj/LoggerCommonsAccess.java b/test/transform/resource/after-ecj/LoggerCommonsAccess.java index 3bf74bc4..c6d692ec 100644 --- a/test/transform/resource/after-ecj/LoggerCommonsAccess.java +++ b/test/transform/resource/after-ecj/LoggerCommonsAccess.java @@ -9,15 +9,6 @@ import lombok.extern.apachecommons.CommonsLog; super(); } } -@SuppressWarnings("deprecation") @CommonsLog(access = AccessLevel.MODULE) class LoggerCommonsAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessModule.class); - () { - } - - LoggerCommonsAccessModule() { - super(); - } -} @CommonsLog(access = AccessLevel.PROTECTED) class LoggerCommonsAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsAccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerCustomAccess.java b/test/transform/resource/after-ecj/LoggerCustomAccess.java index 2afa8016..708fb57e 100644 --- a/test/transform/resource/after-ecj/LoggerCustomAccess.java +++ b/test/transform/resource/after-ecj/LoggerCustomAccess.java @@ -9,15 +9,6 @@ import lombok.CustomLog; super(); } } -@SuppressWarnings("deprecation") @CustomLog(access = AccessLevel.MODULE) class LoggerCustomAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated MyLogger log = MyLoggerFactory.create(LoggerCustomAccessModule.class); - () { - } - - LoggerCustomAccessModule() { - super(); - } -} @CustomLog(access = AccessLevel.PROTECTED) class LoggerCustomAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated MyLogger log = MyLoggerFactory.create(LoggerCustomAccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerFloggerAccess.java b/test/transform/resource/after-ecj/LoggerFloggerAccess.java index 0560e415..ac5e1f77 100644 --- a/test/transform/resource/after-ecj/LoggerFloggerAccess.java +++ b/test/transform/resource/after-ecj/LoggerFloggerAccess.java @@ -9,15 +9,6 @@ import lombok.extern.flogger.Flogger; super(); } } -@SuppressWarnings("deprecation") @Flogger(access = AccessLevel.MODULE) class LoggerFloggerAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); - () { - } - - LoggerFloggerAccessModule() { - super(); - } -} @Flogger(access = AccessLevel.PROTECTED) class LoggerFloggerAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass(); () { diff --git a/test/transform/resource/after-ecj/LoggerJBossLogAccess.java b/test/transform/resource/after-ecj/LoggerJBossLogAccess.java index 361b3cc5..3bf3b293 100644 --- a/test/transform/resource/after-ecj/LoggerJBossLogAccess.java +++ b/test/transform/resource/after-ecj/LoggerJBossLogAccess.java @@ -9,15 +9,6 @@ import lombok.extern.jbosslog.JBossLog; super(); } } -@SuppressWarnings("deprecation") @JBossLog(access = AccessLevel.MODULE) class LoggerJBossLogAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessModule.class); - () { - } - - LoggerJBossLogAccessModule() { - super(); - } -} @JBossLog(access = AccessLevel.PROTECTED) class LoggerJBossLogAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogAccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerJulAccess.java b/test/transform/resource/after-ecj/LoggerJulAccess.java index 486fadbc..9f504cee 100644 --- a/test/transform/resource/after-ecj/LoggerJulAccess.java +++ b/test/transform/resource/after-ecj/LoggerJulAccess.java @@ -9,15 +9,6 @@ import lombok.extern.java.Log; super(); } } -@SuppressWarnings("deprecation") @Log(access = AccessLevel.MODULE) class LoggerJulAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessModule.class.getName()); - () { - } - - LoggerJulAccessModule() { - super(); - } -} @Log(access = AccessLevel.PROTECTED) class LoggerJulAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulAccessProtected.class.getName()); () { diff --git a/test/transform/resource/after-ecj/LoggerLog4j2Access.java b/test/transform/resource/after-ecj/LoggerLog4j2Access.java index 49183fa5..8f4eb305 100644 --- a/test/transform/resource/after-ecj/LoggerLog4j2Access.java +++ b/test/transform/resource/after-ecj/LoggerLog4j2Access.java @@ -9,15 +9,6 @@ import lombok.extern.log4j.Log4j2; super(); } } -@SuppressWarnings("deprecation") @Log4j2(access = AccessLevel.MODULE) class LoggerLog4j2AccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessModule.class); - () { - } - - LoggerLog4j2AccessModule() { - super(); - } -} @Log4j2(access = AccessLevel.PROTECTED) class LoggerLog4j2AccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2AccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerLog4jAccess.java b/test/transform/resource/after-ecj/LoggerLog4jAccess.java index 5f8259ae..a5c1a53a 100644 --- a/test/transform/resource/after-ecj/LoggerLog4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerLog4jAccess.java @@ -9,15 +9,6 @@ import lombok.extern.log4j.Log4j; super(); } } -@SuppressWarnings("deprecation") @Log4j(access = AccessLevel.MODULE) class LoggerLog4jAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessModule.class); - () { - } - - LoggerLog4jAccessModule() { - super(); - } -} @Log4j(access = AccessLevel.PROTECTED) class LoggerLog4jAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jAccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerSlf4jAccess.java b/test/transform/resource/after-ecj/LoggerSlf4jAccess.java index 87fdf311..a8c0c058 100644 --- a/test/transform/resource/after-ecj/LoggerSlf4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerSlf4jAccess.java @@ -9,15 +9,6 @@ import lombok.extern.slf4j.Slf4j; super(); } } -@SuppressWarnings("deprecation") @Slf4j(access = AccessLevel.MODULE) class LoggerSlf4jAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessModule.class); - () { - } - - LoggerSlf4jAccessModule() { - super(); - } -} @Slf4j(access = AccessLevel.PROTECTED) class LoggerSlf4jAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jAccessProtected.class); () { diff --git a/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java b/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java index bfbe1f76..0fbbc1ce 100644 --- a/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java +++ b/test/transform/resource/after-ecj/LoggerXSlf4jAccess.java @@ -9,15 +9,6 @@ import lombok.extern.slf4j.XSlf4j; super(); } } -@SuppressWarnings("deprecation") @XSlf4j(access = AccessLevel.MODULE) class LoggerXSlf4jAccessModule { - static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessModule.class); - () { - } - - LoggerXSlf4jAccessModule() { - super(); - } -} @XSlf4j(access = AccessLevel.PROTECTED) class LoggerXSlf4jAccessProtected { protected static final @java.lang.SuppressWarnings("all") @lombok.Generated org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jAccessProtected.class); () { diff --git a/test/transform/resource/before/LoggerCommonsAccess.java b/test/transform/resource/before/LoggerCommonsAccess.java index 47a59fdd..8838a4ce 100644 --- a/test/transform/resource/before/LoggerCommonsAccess.java +++ b/test/transform/resource/before/LoggerCommonsAccess.java @@ -5,11 +5,6 @@ import lombok.extern.apachecommons.CommonsLog; class LoggerCommonsAccessPublic { } -@SuppressWarnings("deprecation") -@CommonsLog(access = AccessLevel.MODULE) -class LoggerCommonsAccessModule { -} - @CommonsLog(access = AccessLevel.PROTECTED) class LoggerCommonsAccessProtected { } diff --git a/test/transform/resource/before/LoggerCustomAccess.java b/test/transform/resource/before/LoggerCustomAccess.java index 966c93b5..31d5d2b7 100644 --- a/test/transform/resource/before/LoggerCustomAccess.java +++ b/test/transform/resource/before/LoggerCustomAccess.java @@ -6,11 +6,6 @@ import lombok.CustomLog; class LoggerCustomAccessPublic { } -@SuppressWarnings("deprecation") -@CustomLog(access = AccessLevel.MODULE) -class LoggerCustomAccessModule { -} - @CustomLog(access = AccessLevel.PROTECTED) class LoggerCustomAccessProtected { } diff --git a/test/transform/resource/before/LoggerFloggerAccess.java b/test/transform/resource/before/LoggerFloggerAccess.java index 14177e7b..4dbe2b35 100644 --- a/test/transform/resource/before/LoggerFloggerAccess.java +++ b/test/transform/resource/before/LoggerFloggerAccess.java @@ -5,11 +5,6 @@ import lombok.extern.flogger.Flogger; class LoggerFloggerAccessPublic { } -@SuppressWarnings("deprecation") -@Flogger(access = AccessLevel.MODULE) -class LoggerFloggerAccessModule { -} - @Flogger(access = AccessLevel.PROTECTED) class LoggerFloggerAccessProtected { } diff --git a/test/transform/resource/before/LoggerJBossLogAccess.java b/test/transform/resource/before/LoggerJBossLogAccess.java index 91df2423..fc2aa60c 100644 --- a/test/transform/resource/before/LoggerJBossLogAccess.java +++ b/test/transform/resource/before/LoggerJBossLogAccess.java @@ -5,11 +5,6 @@ import lombok.extern.jbosslog.JBossLog; class LoggerJBossLogAccessPublic { } -@SuppressWarnings("deprecation") -@JBossLog(access = AccessLevel.MODULE) -class LoggerJBossLogAccessModule { -} - @JBossLog(access = AccessLevel.PROTECTED) class LoggerJBossLogAccessProtected { } diff --git a/test/transform/resource/before/LoggerJulAccess.java b/test/transform/resource/before/LoggerJulAccess.java index 84c205b7..017490e3 100644 --- a/test/transform/resource/before/LoggerJulAccess.java +++ b/test/transform/resource/before/LoggerJulAccess.java @@ -5,11 +5,6 @@ import lombok.extern.java.Log; class LoggerJulAccessPublic { } -@SuppressWarnings("deprecation") -@Log(access = AccessLevel.MODULE) -class LoggerJulAccessModule { -} - @Log(access = AccessLevel.PROTECTED) class LoggerJulAccessProtected { } diff --git a/test/transform/resource/before/LoggerLog4j2Access.java b/test/transform/resource/before/LoggerLog4j2Access.java index 0f313bfa..e794aa4b 100644 --- a/test/transform/resource/before/LoggerLog4j2Access.java +++ b/test/transform/resource/before/LoggerLog4j2Access.java @@ -6,11 +6,6 @@ import lombok.extern.log4j.Log4j2; class LoggerLog4j2AccessPublic { } -@SuppressWarnings("deprecation") -@Log4j2(access = AccessLevel.MODULE) -class LoggerLog4j2AccessModule { -} - @Log4j2(access = AccessLevel.PROTECTED) class LoggerLog4j2AccessProtected { } diff --git a/test/transform/resource/before/LoggerLog4jAccess.java b/test/transform/resource/before/LoggerLog4jAccess.java index 99e953ca..66de747b 100644 --- a/test/transform/resource/before/LoggerLog4jAccess.java +++ b/test/transform/resource/before/LoggerLog4jAccess.java @@ -5,11 +5,6 @@ import lombok.extern.log4j.Log4j; class LoggerLog4jAccessPublic { } -@SuppressWarnings("deprecation") -@Log4j(access = AccessLevel.MODULE) -class LoggerLog4jAccessModule { -} - @Log4j(access = AccessLevel.PROTECTED) class LoggerLog4jAccessProtected { } diff --git a/test/transform/resource/before/LoggerSlf4jAccess.java b/test/transform/resource/before/LoggerSlf4jAccess.java index 5c8c403b..cd616861 100644 --- a/test/transform/resource/before/LoggerSlf4jAccess.java +++ b/test/transform/resource/before/LoggerSlf4jAccess.java @@ -5,11 +5,6 @@ import lombok.extern.slf4j.Slf4j; class LoggerSlf4jAccessPublic { } -@SuppressWarnings("deprecation") -@Slf4j(access = AccessLevel.MODULE) -class LoggerSlf4jAccessModule { -} - @Slf4j(access = AccessLevel.PROTECTED) class LoggerSlf4jAccessProtected { } diff --git a/test/transform/resource/before/LoggerXSlf4jAccess.java b/test/transform/resource/before/LoggerXSlf4jAccess.java index 28474e31..997791b3 100644 --- a/test/transform/resource/before/LoggerXSlf4jAccess.java +++ b/test/transform/resource/before/LoggerXSlf4jAccess.java @@ -5,11 +5,6 @@ import lombok.extern.slf4j.XSlf4j; class LoggerXSlf4jAccessPublic { } -@SuppressWarnings("deprecation") -@XSlf4j(access = AccessLevel.MODULE) -class LoggerXSlf4jAccessModule { -} - @XSlf4j(access = AccessLevel.PROTECTED) class LoggerXSlf4jAccessProtected { }