My impression is that the problem had to do with some special, internal stuff Groovy was doing. The Groovy people discovered the problem and fixed it. If Groovy was doing some internal (non-public API) things, this sort of problem would be normal and corrected as discovered - as it was.
Not a JVM problem. --blake On Friday, October 10th, 2025 at 9:17 AM, Tommy Svensson <[email protected]> wrote: > Sorry, but I don't have anything to say about the specific problem! > > That said I found this: https://openjdk.org > > Is it possible the open source world can take this JVM code and take it in an > own, fully backwards compatible direction, so that we can avoid problems like > this ? > > Tommy Svensson > > [email protected] > > Från: Blake McBride [<[email protected]>](mailto:[email protected]) > Svara: [email protected] > [<[email protected]>](mailto:[email protected]) > Datum: 10 oktober 2025 at 01:26:18 > Till: [email protected] > [<[email protected]>](mailto:[email protected]) > Ämne: Re: Error in Java 25 > >> I fixed the problem by upgrading to Groovy 4.0.28 >> >> On Thu, Oct 9, 2025 at 4:45 PM Blake McBride <[email protected]> wrote: >> >>> Hello, >>> >>> I am trying to run an app that runs fine under Java 21 but will not run >>> under Java 25. >>> The problem appears to be Groovy. >>> >>> Sure appreciate any help. >>> >>> I am running the following: >>> >>> Groovy: 4.0.26 >>> Java: 25 >>> Apache tomcat: 11.0.8 >>> >>> I get the error when trying to run a .groovy file. So, it isn't a .class >>> file. The Groovy file has not been compiled. Again, this code works fine >>> under Java 8, 11, 17, and 21. >>> >>> The error under Java 25: >>> >>> 09-Oct-2025 16:27:47.947 SEVERE [main] >>> org.apache.catalina.core.StandardContext.listenerStart Exception sending >>> context initialized event to listener instance of class >>> [org.kissweb.restServer.StartupListener] >>> BUG! exception in phase 'semantic analysis' in source unit >>> '/drive1/ROOT/home/blake/Stack360/Kiss/src/main/backend/KissInit.groovy' >>> Unsupported class file major version 69 >>> at >>> org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:901) >>> 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:365) >>> at >>> groovy.lang.GroovyClassLoader.lambda$parseClass$2(GroovyClassLoader.java:314) >>> 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 org.kissweb.restServer.GroovyClass.<init>(GroovyClass.java:59) >>> at >>> org.kissweb.restServer.GroovyService.loadGroovyClass(GroovyService.java:400) >>> at >>> org.kissweb.restServer.GroovyService.internalGroovy(GroovyService.java:265) >>> at org.kissweb.restServer.MainServlet.initializeSystem(MainServlet.java:352) >>> at >>> org.kissweb.restServer.StartupListener.contextInitialized(StartupListener.java:37) >>> at >>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4015) >>> at >>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4438) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) >>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:566) >>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) >>> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:926) >>> at >>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1842) >>> at >>> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) >>> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) >>> at >>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) >>> at >>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:125) >>> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:730) >>> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:381) >>> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1582) >>> at >>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:265) >>> at >>> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109) >>> at >>> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) >>> at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336) >>> at >>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:743) >>> at >>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:769) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) >>> at >>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1164) >>> at >>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1160) >>> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) >>> at >>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) >>> at >>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:149) >>> at >>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:716) >>> at >>> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) >>> at >>> org.apache.catalina.core.StandardService.startInternal(StandardService.java:412) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) >>> at >>> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:866) >>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) >>> at org.apache.catalina.startup.Catalina.start(Catalina.java:759) >>> at >>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) >>> at java.base/java.lang.reflect.Method.invoke(Method.java:565) >>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) >>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) >>> Caused by: java.lang.IllegalArgumentException: Unsupported class file major >>> version 69 >>> at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:200) >>> at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:180) >>> at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166) >>> at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:288) >>> 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:782) >>> at >>> org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:423) >>> at >>> org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1240) >>> at >>> org.codehaus.groovy.control.ResolveVisitor.startResolving(ResolveVisitor.java:258) >>> at >>> org.codehaus.groovy.control.CompilationUnit.lambda$addPhaseOperations$3(CompilationUnit.java:207) >>> at >>> org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:897) >>> ... 50 more
