From 58db5a11b76fde5e6121a8a4127a61991a9956b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Michael?= Date: Fri, 9 May 2025 14:24:05 +0200 Subject: [PATCH 1/2] [Fix 3880] Use AssertionError with @UtilityClass --- src/core/lombok/bytecode/AsmUtil.java | 2 +- src/core/lombok/eclipse/handlers/HandleLog.java | 2 +- .../lombok/eclipse/handlers/HandleUtilityClass.java | 12 ++++++------ src/core/lombok/experimental/UtilityClass.java | 2 +- src/core/lombok/javac/handlers/HandleLog.java | 2 +- .../lombok/javac/handlers/HandleUtilityClass.java | 2 +- .../resource/after-delombok/UtilityClass.java | 8 ++++---- .../resource/after-delombok/UtilityClassGeneric.java | 2 +- .../resource/after-delombok/UtilityClassInner.java | 2 +- test/transform/resource/after-ecj/UtilityClass.java | 8 ++++---- .../resource/after-ecj/UtilityClassGeneric.java | 2 +- .../resource/after-ecj/UtilityClassInner.java | 2 +- .../experimental/UtilityClassExample_post.jpage | 2 +- 13 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/core/lombok/bytecode/AsmUtil.java b/src/core/lombok/bytecode/AsmUtil.java index fc2533e5d8..f3dcdec4f8 100644 --- a/src/core/lombok/bytecode/AsmUtil.java +++ b/src/core/lombok/bytecode/AsmUtil.java @@ -30,7 +30,7 @@ class AsmUtil { private AsmUtil() { - throw new UnsupportedOperationException(); + throw new AssertionError(); } static byte[] fixJSRInlining(byte[] byteCode) { diff --git a/src/core/lombok/eclipse/handlers/HandleLog.java b/src/core/lombok/eclipse/handlers/HandleLog.java index 2bbc300a8b..5368b705d4 100644 --- a/src/core/lombok/eclipse/handlers/HandleLog.java +++ b/src/core/lombok/eclipse/handlers/HandleLog.java @@ -54,7 +54,7 @@ public class HandleLog { private static final IdentifierName LOG = IdentifierName.valueOf("log"); private HandleLog() { - throw new UnsupportedOperationException(); + throw new AssertionError(); } public static void processAnnotation(LoggingFramework framework, AnnotationValues annotation, Annotation source, EclipseNode annotationNode) { diff --git a/src/core/lombok/eclipse/handlers/HandleUtilityClass.java b/src/core/lombok/eclipse/handlers/HandleUtilityClass.java index 9a18b20bdd..2cc31ed629 100644 --- a/src/core/lombok/eclipse/handlers/HandleUtilityClass.java +++ b/src/core/lombok/eclipse/handlers/HandleUtilityClass.java @@ -141,11 +141,11 @@ private void changeModifiersAndGenerateConstructor(EclipseNode typeNode, Eclipse if (requiresClInit && !alreadyHasClinit) classDecl.addClinit(); } - private static final char[][] JAVA_LANG_UNSUPPORTED_OPERATION_EXCEPTION = new char[][] { - TypeConstants.JAVA, TypeConstants.LANG, "UnsupportedOperationException".toCharArray() + private static final char[][] JAVA_LANG_ASSERTION_ERROR = new char[][] { + TypeConstants.JAVA, TypeConstants.LANG, "AssertionError".toCharArray() }; - private static final char[] UNSUPPORTED_MESSAGE = "This is a utility class and cannot be instantiated".toCharArray(); + private static final char[] ERROR_MESSAGE = "This is a utility class and cannot be instantiated".toCharArray(); private void createPrivateDefaultConstructor(EclipseNode typeNode, EclipseNode sourceNode) { ASTNode source = sourceNode.get(); @@ -162,11 +162,11 @@ private void createPrivateDefaultConstructor(EclipseNode typeNode, EclipseNode s constructor.bits |= ECLIPSE_DO_NOT_TOUCH_FLAG; constructor.arguments = null; - long[] ps = new long[JAVA_LANG_UNSUPPORTED_OPERATION_EXCEPTION.length]; + long[] ps = new long[JAVA_LANG_ASSERTION_ERROR.length]; AllocationExpression exception = new AllocationExpression(); - exception.type = new QualifiedTypeReference(JAVA_LANG_UNSUPPORTED_OPERATION_EXCEPTION, ps); + exception.type = new QualifiedTypeReference(JAVA_LANG_ASSERTION_ERROR, ps); exception.arguments = new Expression[] { - new StringLiteral(UNSUPPORTED_MESSAGE, 0, 0, 0) + new StringLiteral(ERROR_MESSAGE, 0, 0, 0) }; ThrowStatement throwStatement = new ThrowStatement(exception, 0, 0); diff --git a/src/core/lombok/experimental/UtilityClass.java b/src/core/lombok/experimental/UtilityClass.java index f828166056..aaa1d30748 100644 --- a/src/core/lombok/experimental/UtilityClass.java +++ b/src/core/lombok/experimental/UtilityClass.java @@ -31,7 +31,7 @@ * * If a class is annotated with {@code @UtilityClass}, the following things happen to it: