这是indexloc提供的服务,不要输入任何密码
Skip to content

[BUG] lombok 1.8.26 incompatible with JDK21 #3393

@jnaalisv

Description

@jnaalisv

Describe the bug
Lombok 1.8.26 does not work with JDK21 (EA build 16)

To Reproduce

import lombok.Data;

@Data
public class Person {

    private String name;
}
$ javac -version
javac 21-ea
$ javac -cp lombok-1.18.26.jar Person.java

will fail with this error:

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
	at lombok.javac.JavacImportList.getFullyQualifiedNameForSimpleNameNoAliasing(JavacImportList.java:53)
	at lombok.core.TypeResolver.typeRefToFullyQualifiedName(TypeResolver.java:60)
	at lombok.javac.HandlerLibrary.handleAnnotation(HandlerLibrary.java:247)
	at lombok.javac.JavacTransformer$AnnotationVisitor.visitAnnotationOnType(JavacTransformer.java:79)
	at lombok.javac.JavacNode.traverse(JavacNode.java:132)
	at lombok.javac.JavacAST.traverseChildren(JavacAST.java:222)
	at lombok.javac.JavacNode.traverse(JavacNode.java:95)
	at lombok.javac.JavacAST.traverseChildren(JavacAST.java:222)
	at lombok.javac.JavacNode.traverse(JavacNode.java:90)
	at lombok.javac.JavacAST.traverse(JavacAST.java:218)
	at lombok.javac.JavacTransformer.transform(JavacTransformer.java:63)
	at lombok.javac.apt.LombokProcessor.process(LombokProcessor.java:328)
	at lombok.core.AnnotationProcessor$JavacDescriptor.process(AnnotationProcessor.java:187)
	at lombok.core.AnnotationProcessor.process(AnnotationProcessor.java:241)
	at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.process(AnnotationProcessor.java:90)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1017)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:933)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1261)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1376)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1252)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:934)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
	at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
	at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
	at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)

Expected behavior
Lombok should work with JDK21

Version info:

  • Lombok 1.8.26
  • Platform javac 21-ea, build 16

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions