Closed JanMosigItemis closed 1 month ago
Please try the edge version
The mentioned edge version page contains no download link.
Wow
I've tested the edge version with Eclipse 2024-06 and it works. Thank you.
Tested it with above config and edge version: 1.18.33 (2024-05-17 21:31:34 UTC). Works. Thanks 🍰
I tested the edge version of Friday, June 14, 2024 with Spring STS (Version 4.23.0.RELEASE, Build Id: 202406070037, Revision: d779a8466c4c261d699f49bcbb9dddbe217c0e89) and it works. :)
Since upgrading from Eclipse 2024-03 with Lombok 1.18.32 (edge) to Eclipse 2024-06 with Lombok 1.18.34 (stable), I get sparse errors in the Eclipse annotations side strip related to usage of Lombok-generated constructs (usually related to usage of a missing .builder() method, which should be actually provided by @Builder).
No actual errors in the errors view of Eclipse, and the code starts and debugs normally - the "errors" are only displayed in the current editor annotations.
The behavior is not consistent, in most of the classes it works normally, on other it never works - it seems that, for each class, either it works or not - maybe related to some aspects of the class breaking the Eclipse editor integration of Lombok?
EDIT: seems similar to #3699
I also get this error after updating lombok to 1.18.34:
java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "compilationUnit" is null
at lombok.eclipse.handlers.EclipseHandlerUtil.setDocComment(EclipseHandlerUtil.java:2841)
at lombok.eclipse.handlers.EclipseHandlerUtil.setDocComment(EclipseHandlerUtil.java:2830)
at lombok.eclipse.handlers.HandleConstructor.generateConstructorJavadoc(HandleConstructor.java:609)
at lombok.eclipse.handlers.HandleConstructor.generate(HandleConstructor.java:290)
at lombok.eclipse.handlers.HandleConstructor.generateConstructor(HandleConstructor.java:246)
at lombok.eclipse.handlers.HandleConstructor$HandleAllArgsConstructor.handle(HandleConstructor.java:165)
at lombok.eclipse.HandlerLibrary$AnnotationHandlerContainer.handle(HandlerLibrary.java:106)
at lombok.eclipse.HandlerLibrary.handleAnnotation(HandlerLibrary.java:237)
at lombok.eclipse.TransformEclipseAST$AnnotationVisitor.visitAnnotationOnType(TransformEclipseAST.java:269)
at lombok.eclipse.EclipseNode.traverse(EclipseNode.java:107)
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:226)
at lombok.eclipse.TransformEclipseAST.transform(TransformEclipseAST.java:187)
at lombok.eclipse.TransformEclipseAST.transform_swapped(TransformEclipseAST.java:104)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at lombok.launch.PatchFixesHider$Util.invokeMethod(PatchFixesHider.java:146)
at lombok.launch.PatchFixesHider$Transform.transform_swapped(PatchFixesHider.java:272)
at org.eclipse.jdt.internal.compiler.parser.Parser.endParse(Parser.java:11535)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12735)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12965)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12922)
at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:11306)
at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert(SourceTypeConverter.java:152)
at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUnit(SourceTypeConverter.java:99)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.accept(HierarchyResolver.java:186)
at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:381)
at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:626)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:698)
at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:525)
at org.eclipse.jdt.internal.compiler.lookup.Scope.getBinding(Scope.java:2229)
at org.eclipse.jdt.internal.compiler.ast.Argument.bind(Argument.java:126)
at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.resolveType(LambdaExpression.java:413)
at org.eclipse.jdt.internal.compiler.ast.FunctionalExpression.resolveType(FunctionalExpression.java:189)
at org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.resolve(FieldDeclaration.java:309)
at org.eclipse.jdt.internal.compiler.lookup.FieldBinding.constant(FieldBinding.java:226)
at org.eclipse.jdt.internal.compiler.lookup.FieldBinding.constant(FieldBinding.java:253)
at org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference.getOtherFieldBindings(QualifiedNameReference.java:746)
at org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference.resolveType(QualifiedNameReference.java:1119)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:866)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:815)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.skipResolveInitializerIfAlreadyCalled2(LocalDeclaration.java:383)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:358)
at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:258)
at org.eclipse.jdt.internal.compiler.ast.Statement.resolveWithBindings(Statement.java:498)
at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveStatements(ASTNode.java:726)
at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:128)
at org.eclipse.jdt.internal.compiler.ast.ForeachStatement.resolve(ForeachStatement.java:683)
at org.eclipse.jdt.internal.compiler.ast.Statement.resolveWithBindings(Statement.java:498)
at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveStatements(ASTNode.java:726)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:714)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:409)
at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:612)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1517)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1646)
at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:666)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve(HierarchyResolver.java:861)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve(HierarchyResolver.java:661)
at org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.buildSupertypes(HierarchyBuilder.java:132)
at org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build(IndexBasedHierarchyBuilder.java:157)
at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute(TypeHierarchy.java:323)
at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh(TypeHierarchy.java:1281)
at org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation(CreateTypeHierarchyOperation.java:94)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:740)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:805)
at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy(SourceType.java:862)
at org.eclipse.jdt.internal.core.SourceType.newSupertypeHierarchy(SourceType.java:813)
at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:144)
at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getTypeHierarchy(SuperTypeHierarchyCache.java:96)
at org.eclipse.jdt.internal.corext.util.SuperTypeHierarchyCache.getMethodOverrideTester(SuperTypeHierarchyCache.java:105)
at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverrideIndicators(OverrideIndicatorLabelDecorator.java:174)
at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.lambda$0(OverrideIndicatorLabelDecorator.java:138)
at org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles(JavaModelManager.java:5765)
at org.eclipse.jdt.internal.core.JavaModelManager.callReadOnly(JavaModelManager.java:5754)
at org.eclipse.jdt.core.JavaCore.callReadOnly(JavaCore.java:6130)
at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAdornmentFlags(OverrideIndicatorLabelDecorator.java:129)
at org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate(OverrideIndicatorLabelDecorator.java:266)
at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:254)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:105)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:359)
at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:345)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.queue(DecorationScheduler.java:410)
at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:388)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Eclipse details:
eclipse.buildId=4.32.0.20240606-1231
java.version=21.0.3
java.vendor=Eclipse Adoptium
lombok.version=1.18.34
I also get sporadical The method builder() is undefined for the type <Name>
message in the editor for the very few classes with the @Builder annotation. No stack traces or errors anywhere. The code is compilable. Eclipse version: 2024-06 (4.32.0), Lombok v1.18.34.
The same error is for the toBuilder()
method if @Builder is used with the toBuilder = true
Since Eclipse 2024-06 is generally supported by Lombok 1.18.34, I'd suggest closing this issue and report individual bugs as individual and well scoped issues like #3706 and #3709.
What you guys could try though is to compile your projects via Maven + ECJ + Lombok. See the zipfile in #3709 as an example. You should be able to see some more details with that.
Since Eclipse 2024-06 is generally supported by Lombok 1.18.34, I'd suggest closing this issue and report individual bugs as individual and well scoped issues like #3706 and #3709.
What you guys could try though is to compile your projects via Maven + ECJ + Lombok. See the zipfile in #3709 as an example. You should be able to see some more details with that.
In relation to this problem reported in my previous comment: https://github.com/projectlombok/lombok/issues/3688#issuecomment-2198110862 the issue specifically affects, since the upgrade, Eclipse IDE editor integration. The code compiled by Eclipse runs fine, without any errors reported in the Problems pane. My assumption is that, in this case, running ECJ externally would just behave as expected, do you agree?
I see many many exceptions in eclipse like this
Lombok annotation handler class lombok.eclipse.handlers.HandleConstructor$HandleAllArgsConstructor failed Stacktrace: java.lang.NullPointerException
eclipse.buildId=4.24.0.202407191701 java.version=22.0.1 java.vendor=Eclipse Adoptium BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE Framework arguments: -product org.springframework.boot.ide.branding.sts4 Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.springframework.boot.ide.branding.sts4
I'm using already lombok's latest release: -javaagent:D:\Dev\sts-4.20.0.RELEASE\plugins\org.projectlombok.agent_1.18.34/lombok.jar
And there is now edge release or? No edge build has been released since the last stable release of lombok.
Whenever I type something into the editor, an error message appears in the error log. Here is a screenshot from eclipse error console:
Eclipse details:
eclipse.buildId=4.32.0.20240606-1231
java.version=21.0.3
java.vendor=Eclipse Adoptium
lombok.version=1.18.34
The original problem was fixed in lombok 1.18.34. For the javadoc/constructor issue, see #3706.
Describe the bug Like https://github.com/projectlombok/lombok/issues/3620 but for Eclipse 4.32.
To Reproduce Load a lombokified project into the workspace and check the error log.
Expected behavior Full support for Eclipse 2024-06 (4.32)
Version info:
Fix would be appreciated 👍