unparallelDream
unparallelDream

Reputation: 31

@SneakyThrowsWhen use lombok ”@SneakyThrows“,unsupported class file major version 61

I am learning to use Lombok in a Maven project. When I use "@SneakyThrows", there are some errors. I found that when I deleted "@SneakyThrows", the errors disappeared.

Here are the errors and code.

java: Error during the transformation of 'com.zem.mybatis.DAO.BO.Bus'; post-compiler 'lombok.bytecode.SneakyThrowsRemover' caused an exception: java.lang.IllegalArgumentException: Unsupported class file major version 61
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:189)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:156)
    at lombok.bytecode.AsmUtil.fixJSRInlining(AsmUtil.java:37)
    at lombok.bytecode.SneakyThrowsRemover.applyTransformations(SneakyThrowsRemover.java:46)
    at lombok.core.PostCompiler.applyTransformations(PostCompiler.java:43)
    at lombok.core.PostCompiler$1.close(PostCompiler.java:77)
    at jdk.compiler/com.sun.tools.javac.jvm.ClassWriter.writeClass(ClassWriter.java:1508)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:738)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1617)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1585)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
    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)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
    at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
    at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:238)
    at org.jetbrains.jps.incremental.java.JavaBuilder.lambda$compileJava$2(JavaBuilder.java:518)
    at org.jetbrains.jps.incremental.java.JavaBuilder.invokeJavac(JavaBuilder.java:564)
    at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:516)
    at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:359)
    at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:284)
    at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:238)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1507)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1141)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1288)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1106)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:877)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:459)
    at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:197)
    at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:131)
    at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:334)
    at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:162)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:218)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
@AllArgsConstructor
@Data
@Builder
public class Bus {
    private @Singular("a")
    List<Integer> arrayList;
    @Getter(lazy = true) private final static Bus bus = Bus.builder().a(1).build();
}

This is the dependency of Lombok.

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
</dependency>

Upvotes: 3

Views: 5286

Answers (1)

Mark Rotteveel
Mark Rotteveel

Reputation: 109014

You're using Lombok 1.18.16, but Lombok added Java 17 support in version 1.18.22 (see its changelog, or issue 2898). You need to update to 1.18.22 or higher to make it work on Java 17.

Upvotes: 7

Related Questions