Hi,
JDK21 just entered RampDown Phase 1 and I've been trying to get our
project running with OracleJDK 21 EA. We're using Groovy 4.0.12 and
trying to start our application fails with a ASM-related crash
("Unsupported class file major version 65" , see end of my e-mail).
Seeing that Groovy bundles ASM, I wanted to see whether the crash maybe
goes away when using HEAD so I cloned
https://github.com/apache/groovy.git and tried to build on JDK17
(Eclipse Temurin). Unfortunately I'm a Maven user and I failed miserably
trying to convince Gradle to install the generated SNAPSHOT artifacts
into my local Maven repository.
A Google search on how do do this turned up the command "gradlew
publishToMavenLocal" but when I run this I get an error:
--------->8--------->8--------->8--------->8--------->8--------->8--------->8--------->8--------->8
FAILURE: Build failed with an exception.
* What went wrong:
A problem was found with the configuration of task
':groovy-all:sourcesAllJar' (type 'Jar').
- Gradle detected a problem with the following location:
'/extra/home/tobi/tmp/groovy/build/generated/sources/antlr4'.
Reason: Task ':groovy-all:sourcesAllJar' uses this output of task
':generateGrammarSource' without declaring an explicit or implicit
dependency. This can lead to incorrect results being produced, depending
on what order the tasks are executed.
Possible solutions:
1. Declare task ':generateGrammarSource' as an input of
':groovy-all:sourcesAllJar'.
2. Declare an explicit dependency on ':generateGrammarSource'
from ':groovy-all:sourcesAllJar' using Task#dependsOn.
3. Declare an explicit dependency on ':generateGrammarSource'
from ':groovy-all:sourcesAllJar' using Task#mustRunAfter.
Please refer to
https://docs.gradle.org/8.1.1/userguide/validation_problems.html#implicit_dependency
for more details about this problem.
--------->8--------->8--------->8--------->8--------->8--------->8
Since installing the build artifacts locally must be a very common
use-case, I'm probably doing something terribly wrong here... can
somebody give me a hint ?
Thank you,
Tobias
P.S. This is the exception I'm getting when trying to run our
application. We're using a fairly funky log4j2.xml file that makes use
of the Log4J Groovy scripting feature and hence org.apache.logging.log4j
shows up in the stack trace.
BUG! exception in phase 'semantic analysis' in source unit
'Script2.groovy' Unsupported class file major version 65
at
org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:900)
at
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:692)
at
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:666)
at
groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:373)
at
groovy.lang.GroovyClassLoader.lambda$parseClass$2(GroovyClassLoader.java:316)
at
org.codehaus.groovy.runtime.memoize.StampedCommonCache.compute(StampedCommonCache.java:163)
at
org.codehaus.groovy.runtime.memoize.StampedCommonCache.getAndPut(StampedCommonCache.java:154)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:314)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:258)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getScriptClass(GroovyScriptEngineImpl.java:350)
at
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:159)
at
java.scripting/javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:231)
at
org.apache.logging.log4j.core.script.ScriptManager$MainScriptRunner.execute(ScriptManager.java:254)
at
org.apache.logging.log4j.core.script.ScriptManager.lambda$execute$0(ScriptManager.java:197)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at
org.apache.logging.log4j.core.script.ScriptManager.execute(ScriptManager.java:197)
at
org.apache.logging.log4j.core.appender.routing.RoutingAppender.start(RoutingAppender.java:193)
at
org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:320)
at
org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621)
at
org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:694)
at
org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711)
at
org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253)
at
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
at
org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:309)
at
org.apache.log4j.Hierarchy$PrivateLogManager.getContext(Hierarchy.java:86)
at org.apache.log4j.Hierarchy.getContext(Hierarchy.java:99)
at org.apache.log4j.Category.<init>(Category.java:188)
at org.apache.log4j.Logger.<init>(Logger.java:57)
at org.apache.log4j.spi.RootLogger.<init>(RootLogger.java:39)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:72)
at
com.voipfuture.voipmanager.tomcat.valve.ProgressValve.<clinit>(ProgressValve.java:46)
at
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
at
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.ensureClassInitialized(MethodHandleAccessorFactory.java:300)
at
java.base/jdk.internal.reflect.MethodHandleAccessorFactory.newConstructorAccessor(MethodHandleAccessorFactory.java:103)
at
java.base/jdk.internal.reflect.ReflectionFactory.newConstructorAccessor(ReflectionFactory.java:200)
at
java.base/java.lang.reflect.Constructor.acquireConstructorAccessor(Constructor.java:549)
at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at
org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:105)
at
org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1293)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:518)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1387)
at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2726)
at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
at
java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1551)
at
org.apache.catalina.startup.Catalina.parseServerXml(Catalina.java:617)
at org.apache.catalina.startup.Catalina.load(Catalina.java:709)
at org.apache.catalina.startup.Catalina.load(Catalina.java:746)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
Caused by: java.lang.IllegalArgumentException: Unsupported class file
major version 65
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:199)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:180)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:287)
at
org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:83)
at
org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:255)
at
org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:193)
at
org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:175)
at
org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:129)
at
org.codehaus.groovy.control.ResolveVisitor.resolveToOuter(ResolveVisitor.java:773)
at
org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:413)
at
org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:375)
at
org.codehaus.groovy.control.ResolveVisitor.transformPropertyExpression(ResolveVisitor.java:933)
at
org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:794)
at
org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1152)
at
org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:800)
at
org.codehaus.groovy.control.ResolveVisitor.transformBinaryExpression(ResolveVisitor.java:1058)
at
org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:798)
at
org.codehaus.groovy.ast.expr.BooleanExpression.transformExpression(BooleanExpression.java:46)
at
org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:809)
at
org.codehaus.groovy.ast.expr.TernaryExpression.transformExpression(TernaryExpression.java:50)
at
org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:809)
at
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:129)
at
org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:41)
at
org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:168)
at
org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1399)
at
org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:70)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:142)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
at
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:87)
at
org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:298)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:110)
at
org.codehaus.groovy.control.ResolveVisitor.visitMethod(ResolveVisitor.java:268)
at org.codehaus.groovy.ast.ClassNode.visitMethods(ClassNode.java:1131)
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1124)
at
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:52)
--
Tobias Gierke
Software Developer
Voipfuture GmbH Wendenstr. 4 20097 Hamburg Germany
Phone +49 40 688 9001 64 Fax +49 40 688 9001 99
Managing Directors Jan Bastian Eyal Ullert
Commercial Court AG Hamburg HRB 109896 VAT ID DE263738086