lombok-intellij-plugin: Plugin fails project compilation with Java 9

Short description

When trying to compile a project with Java 9 on IDEA 2013.3 EAP it fails with unknown symbol __

Expected behavior

Project compiles cleanly.

Version information

  • IDEA Version: Intellij IDEA 2017.3 EAP (173.2290.1)
  • JDK Version: Java 9 (Java HotSpot™ 64-Bit Server VM (build 9+181, mixed mode)) - first official Oracle Java 9
  • OS Type & Version: Linux
  • Lombok Plugin Version: 0.15.17.2
  • Lombok Dependency Version: 1.16.18

Steps to reproduce

Have a project with following annotation (or any other that uses @__):

package com.example;

import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor(onConstructor = @__(@SuppressWarnings("")))
public class Main {
	private final String name;
}

Same project compiles fine in the same Intellij when I switch back to Java 8.

Stacktrace

Warning:(6, 8) java: lombok.javac.apt.LombokProcessor could not be initialized. Lombok will not run during this compilation: java.lang.IllegalArgumentException: com.sun.tools.javac.api.ClientCodeWrapper$WrappedStandardJavaFileManager extends com.sun.tools.javac.api.ClientCodeWrapper$WrappedJavaFileManager implements javax.tools.StandardJavaFileManager
  	at lombok.javac.apt.LombokFileObjects.getCompiler(LombokFileObjects.java:130)
  	at lombok.javac.apt.InterceptingJavaFileManager.<init>(InterceptingJavaFileManager.java:40)
  	at lombok.javac.apt.LombokProcessor.placePostCompileAndDontMakeForceRoundDummiesHook(LombokProcessor.java:164)
  	at lombok.javac.apt.LombokProcessor.init(LombokProcessor.java:85)
  	at lombok.core.AnnotationProcessor$JavacDescriptor.want(AnnotationProcessor.java:87)
  	at lombok.core.AnnotationProcessor.init(AnnotationProcessor.java:140)
  	at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init(AnnotationProcessor.java:69)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init>(JavacProcessingEnvironment.java:675)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next(JavacProcessingEnvironment.java:774)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:869)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.access$2200(JavacProcessingEnvironment.java:108)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1206)
  	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1315)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1246)
  	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:922)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:100)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:142)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:96)
  	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:90)
  	at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:190)
  	at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:472)
  	at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:327)
  	at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:254)
  	at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:207)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1260)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:937)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1009)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:900)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:733)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:385)
  	at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192)
  	at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
  	at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295)
  	at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
  	at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:235)
  	at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
  	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
  	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
  	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
  	at java.base/java.lang.Thread.run(Thread.java:844)
Error:(23, 43) java: cannot find symbol
  symbol: class __

Sample project that fails when doing Build->Build Project: lomboktest.zip

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 10
  • Comments: 16 (4 by maintainers)

Commits related to this issue

Most upvoted comments

I can confirm the behaviour encountered by @joaodelgado using Lombok 1.16.20, JDK 9.0.4 and IntelliJ IDEA 2017.3.3. Could you please update the plugin to use Lombok 1.16.20? Cheers!

I am using IDEA 2017.2.5; it fails as @krzyk said; but Gradle workgroud (gradle clean build) works fine;

allprojects {
    apply plugin: 'java'
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.encoding = 'UTF-8'
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Werror"
            if (JavaVersion.current() == JavaVersion.VERSION_1_9) {
                options.compilerArgs << "--add-modules=java.activation,java.xml.ws.annotation"
            }

        }
    }

    dependencies {
        compileOnly 'org.projectlombok:lombok:1.16.18'
    }
}

I think this should be fixed in lombok-intellij-plugin rather than lombok itself.

Looks like an obsolete issue. Just tested it successfully with lombok 1.16.22, current version of Intellij 2018.2.5 and JDK 11.

I’ ll close this for now, feel free to reopen the issue, if it still occurs!