Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] lombok.eclipse.handlers.HandleBuilder failed - Java 22, Eclipse 2024-03 #3648

Open
danijelz opened this issue Apr 3, 2024 · 6 comments · May be fixed by #3633
Open

[BUG] lombok.eclipse.handlers.HandleBuilder failed - Java 22, Eclipse 2024-03 #3648

danijelz opened this issue Apr 3, 2024 · 6 comments · May be fixed by #3633

Comments

@danijelz
Copy link

danijelz commented Apr 3, 2024

Describe the bug
@Builder annotation failes in combination with @Singular annotation. Stack trace:

java.lang.NoSuchMethodError: 'void org.eclipse.jdt.internal.compiler.ast.CaseStatement.<init>(org.eclipse.jdt.internal.compiler.ast.Expression, int, int)'
	at lombok.eclipse.Eclipse.createCaseStatement(Eclipse.java:285)
	at lombok.eclipse.handlers.singulars.EclipseJavaUtilListSingularizer.appendBuildCode(EclipseJavaUtilListSingularizer.java:75)
	at lombok.eclipse.handlers.HandleBuilder.generateBuildMethod(HandleBuilder.java:821)
	at lombok.eclipse.handlers.HandleBuilder.handle(HandleBuilder.java:563)
	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:11531)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12732)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12962)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12919)
	at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:11302)
	at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.accept(SourceIndexer.java:131)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:365)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:624)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:696)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:525)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:598)
	at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.resolveDocument(SourceIndexer.java:172)
	at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.resolveDocument(JavaSearchParticipant.java:116)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexResolvedDocument(IndexManager.java:680)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager$2.execute(IndexManager.java:1291)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.indexerLoop(JobManager.java:542)
	at java.base/java.lang.Thread.run(Thread.java:1570)

To Reproduce
Install Eclipse 2024-03 with Java 22 support and Lombok 1.18.32. Add class:

import java.util.List;
import lombok.Builder;
import lombok.Data;
import lombok.Singular;

@Data
@Builder
public class Test {
  @Singular List<String> strings;
}

Version info:

  • Lombok version: 1.18.32
  • Platform: Screenshot_20240403_142531
@charleech
Copy link

charleech commented Apr 4, 2024

For me, it is VSCode 1.87.2, vscode-java 1.29.0, JDK 21 (Temurin-21.0.2+13) and Lombok 1.18.32.

[Error - 11:16:11 AM] Apr 4, 2024, 11:16:11 AM Lombok annotation handler class lombok.eclipse.handlers.HandleSuperBuilder failed
'void org.eclipse.jdt.internal.compiler.ast.CaseStatement.<init>(org.eclipse.jdt.internal.compiler.ast.Expression, int, int)'
java.lang.NoSuchMethodError: 'void org.eclipse.jdt.internal.compiler.ast.CaseStatement.<init>(org.eclipse.jdt.internal.compiler.ast.Expression, int, int)'
	at lombok.eclipse.Eclipse.createCaseStatement(Eclipse.java:285)
	at lombok.eclipse.handlers.singulars.EclipseJavaUtilListSingularizer.appendBuildCode(EclipseJavaUtilListSingularizer.java:75)
	at lombok.eclipse.handlers.HandleSuperBuilder.generateBuilderBasedConstructor(HandleSuperBuilder.java:582)
	at lombok.eclipse.handlers.HandleSuperBuilder.handle(HandleSuperBuilder.java:326)
	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.core.util.CommentRecorderParser.endParse(CommentRecorderParser.java:131)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12736)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12966)
	at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:12923)
	at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:11306)
	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:1256)
	at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:791)
	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:5762)
	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.core.manipulation.CoreASTProvider$1.run(CoreASTProvider.java:294)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.createAST(CoreASTProvider.java:286)
	at org.eclipse.jdt.core.manipulation.CoreASTProvider.getAST(CoreASTProvider.java:199)
	at org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler.getASTRoot(CodeActionHandler.java:367)
	at org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler.getCodeActionCommands(CodeActionHandler.java:139)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$14(JDTLanguageServer.java:765)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

There is a reported issue at vscode-java, too.

@raffian
Copy link

raffian commented Apr 24, 2024

Similar issue:

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

2024-04-23 23:36:39.589 [warning] vscjava.vscode-lombok - Code actions of kind 'quickfix 'requested but returned code action is of kind 'refactor'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.

  • VSCode 1.88.1
  • Lombok Extension Annotations Support v1.1.0
  • Java Runtime 17.0.8+9-LTS-211
  • Windows 10

TEMP SOLUTION
Downgraded redhat/Language support for Java extension to 1.28.1

@yuzawa-san
Copy link

Does #3633 fix this issue?

@Rawi01 Rawi01 linked a pull request May 2, 2024 that will close this issue
@mikehaertl
Copy link

Does #3633 fix this issue?

@yuzawa-san Yes, it really seems to fix the issue. Tested it with eclipse.jdt.ls 1.34.0 under neovim where I had many errors with Lombok 1.18.32.

@foxpluto
Copy link

foxpluto commented May 4, 2024

Bump to release a new version with this fix.

@danijelz
Copy link
Author

danijelz commented May 7, 2024

Does #3633 fix this issue?

@yuzawa-san Sorry for late reply. It looks like the isue is fixed with #3633.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants