Unsupported class file major version with JDK 21 and JaCoCo 0.8.12

156 views
Skip to first unread message

Oleh

unread,
Nov 27, 2024, 6:21:11 PM11/27/24
to JaCoCo and EclEmma Users
 According to the JaCoCo documentation, version 0.8.12 should support JDK 21. However, I encountered the following error while generating a report:  

Caused by: java.io.IOException: Error while analyzing AbstractReporter.class with JaCoCo 0.8.12.202403310830/dbfb6f2.
        at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:163)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:135)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:158)
        at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:195)
        at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:573)
        at org.jacoco.ant.ReportTask.createReport(ReportTask.java:545)
        at org.jacoco.ant.ReportTask.execute(ReportTask.java:496)
        ... 142 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:196)
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:177)
        at org.objectweb.asm.ClassReader.<init>(ClassReader.java:163)
        at org.jacoco.core.internal.instr.InstrSupport.classReaderFor(InstrSupport.java:280)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:108)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:133)
        ... 147 more

Evgeny Mandrikov

unread,
Nov 27, 2024, 6:40:20 PM11/27/24
to JaCoCo and EclEmma Users
JaCoCo 0.8.12 uses ASM 9.7 - https://github.com/jacoco/jacoco/blob/v0.8.12/org.jacoco.build/pom.xml#L142

in your stacktrace


> at org.objectweb.asm.ClassReader.<init>(ClassReader.java:196)

but line 196 in ASM 9.7 is a comment

https://gitlab.ow2.org/asm/asm/-/blob/ASM_9_7/asm/src/main/java/org/objectweb/asm/ClassReader.java?ref_type=tags#L196

so can not appear in stacktrace.

Thus check which JARs/dependencies you're using.
To avoid such and other problems we recommend to use JAR with JaCoCo Ant Tasks that contains all necessary dependencies - see https://www.jacoco.org/jacoco/trunk/doc/repo.html

Oleh

unread,
Nov 28, 2024, 8:49:31 AM11/28/24
to JaCoCo and EclEmma Users

Thank you for your response! After checking, it turned out that due to transitive dependencies in my project, an ASM version lower than 9.7 was being used. After explicitly specifying the required ASM version, the issue was resolved.  
Reply all
Reply to author
Forward
0 new messages