Lombok Bazel and Java 17

1,182 views
Skip to first unread message

Alexei Isac

unread,
Oct 5, 2022, 1:20:38 PM10/5/22
to bazel-discuss
Running the example
https://github.com/ckilian867/bazel-lombok-generated-annotation

Lombok changelog says they did add support for 17 and 18
https://projectlombok.org/changelog

with .bazelrc with a single line
build --java_language_version=17

causes the following exception.
Wondering if anyone got past this, hate to downgrade to 15 ?

java.lang.RuntimeException: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x18a82f99) cannot access class com.sun.tools.javac.jvm.ClassWriter (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.jvm to unnamed module @0x18a82f99
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:168)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
    at com.google.devtools.build.buildjar.javac.BlazeJavacMain.compile(BlazeJavacMain.java:135)
    at com.google.devtools.build.buildjar.ReducedClasspathJavaLibraryBuilder.fallback(ReducedClasspathJavaLibraryBuilder.java:105)
    at com.google.devtools.build.buildjar.ReducedClasspathJavaLibraryBuilder.compileSources(ReducedClasspathJavaLibraryBuilder.java:67)
    at com.google.devtools.build.buildjar.SimpleJavaLibraryBuilder.compileJavaLibrary(SimpleJavaLibraryBuilder.java:110)
    at com.google.devtools.build.buildjar.SimpleJavaLibraryBuilder.run(SimpleJavaLibraryBuilder.java:118)
    at com.google.devtools.build.buildjar.BazelJavaBuilder.build(BazelJavaBuilder.java:101)
    at com.google.devtools.build.buildjar.BazelJavaBuilder.parseAndBuild(BazelJavaBuilder.java:81)
    at com.google.devtools.build.lib.worker.WorkRequestHandler$WorkRequestHandlerBuilder.lambda$new$0(WorkRequestHandler.java:259)
    at com.google.devtools.build.lib.worker.WorkRequestHandler$WorkRequestCallback.apply(WorkRequestHandler.java:225)
    at com.google.devtools.build.lib.worker.WorkRequestHandler.respondToRequest(WorkRequestHandler.java:382)
    at com.google.devtools.build.lib.worker.WorkRequestHandler.lambda$startResponseThread$1(WorkRequestHandler.java:357)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x18a82f99) cannot access class com.sun.tools.javac.jvm.ClassWriter (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.jvm to unnamed module @0x18a82f99
    at lombok.javac.apt.LombokProcessor.replaceFileManagerJdk9(LombokProcessor.java:192)
    at lombok.javac.apt.LombokProcessor.placePostCompileAndDontMakeForceRoundDummiesHook(LombokProcessor.java:173)
    at lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:93)
    at lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:124)
    at lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:177)
    at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:73)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:701)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:828)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:924)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1267)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1382)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1234)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:916)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
    ... 13 more

Alexei Isac

unread,
Oct 5, 2022, 1:46:39 PM10/5/22
to bazel-discuss
Answering my own question...

Adding --nojava_header_compilation to .bazelrc and moving to lombok 1.18.24 seems to fix it

.bazelrc contents...

build --java_language_version=17
build --nojava_header_compilation

test --nojava_header_compilation
Reply all
Reply to author
Forward
0 new messages