Skip to content

Does not work on JDK 16 #630

@boris-petrov

Description

@boris-petrov

Running CodeNarc on a project that uses JDK 16 and Gradle 7.0.2 leads to:

Error processing file: 'com/company/SomeSpec.groovy'; BUG! exception in phase 'semantic analysis' in source unit 'None' Unsupported class file major version 60
Error from [org.codenarc.rule.design.AbstractClassWithoutAbstractMethodRule] processing source file [/home/boris/project/src/test/groovy/com/company/SomeSpec.groovy]
BUG! exception in phase 'semantic analysis' in source unit 'None' Unsupported class file major version 60
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:969)
        at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:642)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:591)
        at org.codehaus.groovy.control.CompilationUnit$compile$2.call(Unknown Source)
        at org.codenarc.source.AbstractSourceCode.init(AbstractSourceCode.groovy:98)
        at org.codenarc.source.AbstractSourceCode.getAst(AbstractSourceCode.groovy:85)
        at org.codenarc.rule.AbstractAstVisitorRule.applyTo(AbstractAstVisitorRule.java:90)
        at org.codenarc.rule.AbstractRule.applyTo(AbstractRule.java:143)
        at org.codenarc.rule.Rule$applyTo.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codenarc.rule.Rule$applyTo.call(Unknown Source)
        at org.codenarc.analyzer.AbstractSourceAnalyzer$_collectViolations_closure3.doCall(AbstractSourceAnalyzer.groovy:46)
        at jdk.internal.reflect.GeneratedMethodAccessor693.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:37)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
        at org.codenarc.analyzer.AbstractSourceAnalyzer.measureRuleProcessingTime(AbstractSourceAnalyzer.groovy:58)
        at jdk.internal.reflect.GeneratedMethodAccessor694.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:43)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:190)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:58)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:63)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:176)
        at org.codenarc.analyzer.AbstractSourceAnalyzer.collectViolations(AbstractSourceAnalyzer.groovy:44)
        at org.codenarc.ant.AntFileSetSourceAnalyzer.processFile(AntFileSetSourceAnalyzer.java:188)
        at org.codenarc.ant.AntFileSetSourceAnalyzer.access$000(AntFileSetSourceAnalyzer.java:44)
        at org.codenarc.ant.AntFileSetSourceAnalyzer$1.run(AntFileSetSourceAnalyzer.java:176)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
        at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:196)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:177)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:163)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:284)
        at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
        at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251)
        at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189)
        at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169)
        at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125)
        at org.codehaus.groovy.control.ResolveVisitor.resolveToOuter(ResolveVisitor.java:853)
        at org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:467)
        at org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1422)
        at org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:230)
        at org.codehaus.groovy.control.CompilationUnit$13.call(CompilationUnit.java:700)
        at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:965)
        ... 39 more

I guess that's because CodeNarc uses Groovy 2 which doesn't support JDK 16?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions