Bug 583026 - Compilation error with lombok plugin using @Builder annotation
Summary: Compilation error with lombok plugin using @Builder annotation
Status: NEW
Alias: None
Product: Incubator
Classification: Eclipse Project
Component: e4 (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: E4 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-15 10:19 EDT by Alessandro Castriotta CLA
Modified: 2024-03-22 06:44 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alessandro Castriotta CLA 2024-03-15 10:19:21 EDT
After upgrading to Eclipse Version: 2024-03 (4.31.0) Build id: 20240307-1437, I obtain the following error with classes annotated with @Builder annotation of lombok:

Lombok annotation handler class lombok.eclipse.handlers.HandleBuilder failed - See error log.

eclipse.buildId=4.31.0.20240307-1200
java.version=17.0.10
java.vendor=Eclipse Adoptium
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=it_IT
Framework arguments:  -product org.eclipse.epp.package.jee.product -keyring /Users/myuser/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/myuser/.eclipse_keyring -data file:/Users/myuser/workspaces/

This is a continuation of log file /Users/myuser/workspaces/.metadata/.bak_0.log
Created Time: 2024-03-15 15:17:24.761


java.lang.NoSuchMethodError: 'java.lang.StringBuffer org.eclipse.jdt.internal.compiler.ast.Expression.print(int, java.lang.StringBuffer)'
	at lombok.eclipse.handlers.EclipseHandlerUtil.createAnnotation(EclipseHandlerUtil.java:1335)
	at lombok.eclipse.HandlerLibrary$AnnotationHandlerContainer.handle(HandlerLibrary.java:105)
	at lombok.eclipse.HandlerLibrary.handleAnnotation(HandlerLibrary.java:237)
	at lombok.eclipse.TransformEclipseAST$AnnotationVisitor.visitAnnotationOnMethod(TransformEclipseAST.java:260)
	at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:113)
	at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
	at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:90)
	at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
	at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:74)
	at lombok.eclipse.EclipseAST.traverseChildren(EclipseAST.java:231)
	at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:69)
	at lombok.eclipse.EclipseAST.traverse(EclipseAST.java:224)
	at lombok.eclipse.TransformEclipseAST.go(TransformEclipseAST.java:222)
	at lombok.eclipse.TransformEclipseAST.transform(TransformEclipseAST.java:183)
	at lombok.eclipse.TransformEclipseAST.transform_swapped(TransformEclipseAST.java:107)
	at jdk.internal.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:133)
	at lombok.launch.PatchFixesHider$Transform.transform_swapped(PatchFixesHider.java:256)
	at org.eclipse.jdt.internal.compiler.parser.Parser.endParse(Parser.java:11465)
	at org.eclipse.jdt.internal.core.util.CommentRecorderParser.endParse(CommentRecorderParser.java:131)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12666)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12896)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12853)
	at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:11236)
	at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:850)
	at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:393)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1251)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:790)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateASTCached(ASTParser.java:1242)
	at org.eclipse.jdt.core.dom.ASTParser.lambda$0(ASTParser.java:1120)
	at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5839)
	at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1120)
	at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:868)
	at org.eclipse.jdt.internal.junit.launcher.JUnit4TestFinder.internalIsTest(JUnit4TestFinder.java:241)
	at org.eclipse.jdt.internal.junit.launcher.JUnit4TestFinder.isTest(JUnit4TestFinder.java:209)
	at org.eclipse.jdt.internal.junit.util.CoreTestSearchEngine.isTestOrTestSuite(CoreTestSearchEngine.java:60)
	at org.eclipse.jdt.internal.junit.JUnitPropertyTester.isJUnitTest(JUnitPropertyTester.java:122)
	at org.eclipse.jdt.internal.junit.JUnitPropertyTester.canLaunchAsJUnitTest(JUnitPropertyTester.java:88)
	at org.eclipse.jdt.internal.junit.JUnitPropertyTester.test(JUnitPropertyTester.java:72)
	at org.eclipse.core.internal.expressions.Property.test(Property.java:65)
	at org.eclipse.core.expressions.TestExpression.evaluate(TestExpression.java:107)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.expressions.AndExpression.evaluate(AndExpression.java:36)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.internal.expressions.AdaptExpression.evaluate(AdaptExpression.java:121)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:163)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.expressions.WithExpression.evaluate(WithExpression.java:84)
	at org.eclipse.core.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:54)
	at org.eclipse.core.internal.expressions.EnablementExpression.evaluate(EnablementExpression.java:59)
	at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.evalEnablementExpression(LaunchShortcutExtension.java:273)
	at org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager.getApplicableConfigurationTypes(LaunchConfigurationManager.java:727)
	at org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager.getApplicableLaunchConfigurations(LaunchConfigurationManager.java:765)
	at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.getParticipatingLaunchConfigurations(LaunchingResourceManager.java:519)
	at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.getLabel(LaunchingResourceManager.java:338)
	at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.computeLabels(LaunchingResourceManager.java:258)
	at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager$1$1.run(LaunchingResourceManager.java:147)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Comment 1 M GS CLA 2024-03-15 11:55:48 EDT
Also happens with other annotations (I've found @EqualsAndHashCode and @Getter):

!ENTRY org.eclipse.jdt.core 4 0 2024-03-15 16:36:49.766
!MESSAGE Lombok annotation handler class lombok.eclipse.handlers.HandleEqualsAndHashCode failed
!STACK 0
java.lang.NoSuchMethodError: 'java.lang.StringBuffer org.eclipse.jdt.internal.compiler.ast.Expression.print(int, java.lang.StringBuffer)'


and the problem started today with the update of Eclipse, also.
Comment 2 M GS CLA 2024-03-16 05:25:00 EDT
The cause is Lombok has not yet relased a compatible version with Eclipse 2024-03: https://github.com/projectlombok/lombok/issues/3620
Comment 3 Ralf Naujokat CLA 2024-03-22 06:44:04 EDT
lombok 1.18.32 can be downloaded and used