[ https://issues.apache.org/jira/browse/TINKERPOP-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen Mallette closed TINKERPOP-2730. --------------------------------------- Resolution: Invalid JDK17 support is now available on {{master}} - 3.7.0-SNAPSHOT > Gremlin Console fails to start on ARM Mac with x64 Java > ------------------------------------------------------- > > Key: TINKERPOP-2730 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2730 > Project: TinkerPop > Issue Type: Bug > Components: console > Affects Versions: 3.5.2 > Reporter: John Ruble > Priority: Minor > > Trying to use Gremlin Console with x64 Java 18 on an M1 Mac throws an > {{Unsupported class file major version 62}} exception. This happens with both > Oracle and OpenJDK. > Here's a sample project to repro this on an M1 Mac: > [https://github.com/jrr/gremlin-console-jvms] > > {code:java} > jrr@jrrmbp ~/r/gremlin-console-jvms (main) [2]> make test_openjdk_18_x64 > (...) > file `which java` > /Users/jrr/repos/gremlin-console-jvms/.jdks/openjdk_18_x64/jdk-18.jdk/Contents/Home/bin/java: > Mach-O 64-bit executable x86_64 > java -version > openjdk version "18" 2022-03-22 > OpenJDK Runtime Environment (build 18+36-2087) > OpenJDK 64-Bit Server VM (build 18+36-2087, mixed mode, sharing) > make gremlin-console > .gremlin-console/apache-tinkerpop-gremlin-console/bin/gremlin.sh \,,,/ > (o o) > -----oOOo-(3)-oOOo----- > Exception in thread "main" BUG! exception in phase 'semantic analysis' in > source unit 'Script1.groovy' Unsupported class file major version 62 > 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 groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:401) > at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89) > at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:341) > at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:338) > at > org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:336) > at groovy.lang.GroovyShell.parseClass(GroovyShell.java:546) > at groovy.lang.GroovyShell.parse(GroovyShell.java:558) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:442) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:481) > at groovy.lang.GroovyShell.evaluate(GroovyShell.java:452) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.getPackagesAndClassesFromJigsaw(PackageHelperImpl.groovy:151) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.getPackages(PackageHelperImpl.groovy:125) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.initializePackages(PackageHelperImpl.groovy:62) > at > org.codehaus.groovy.tools.shell.util.PackageHelperImpl.<init>(PackageHelperImpl.groovy:51) > at > java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) > at > java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) > at > java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483) > at > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) > at > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249) > at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:112) > at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:101) > at org.codehaus.groovy.tools.shell.Groovysh.<init>(Groovysh.groovy:140) > at > org.apache.tinkerpop.gremlin.console.GremlinGroovysh.<init>(GremlinGroovysh.groovy:45) > at > java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) > at > java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) > at > java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483) > at > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) > at > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:257) > at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:100) > at > java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) > at > java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) > at > java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483) > at > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) > at > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:265) > at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:524) > Caused by: java.lang.IllegalArgumentException: Unsupported class file major > version 62 > 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.resolveFromDefaultImports(ResolveVisitor.java:629) > at > org.codehaus.groovy.control.ResolveVisitor.resolveFromDefaultImports(ResolveVisitor.java:612) > at > org.codehaus.groovy.control.ResolveVisitor.resolveFromDefaultImports(ResolveVisitor.java:586) > at > org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:465) > at > org.codehaus.groovy.control.ResolveVisitor.resolve(ResolveVisitor.java:428) > at > org.codehaus.groovy.control.ResolveVisitor.transformVariableExpression(ResolveVisitor.java:1120) > at > org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:871) > at > org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1266) > at > org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:879) > at > org.codehaus.groovy.ast.expr.Expression.transformExpressions(Expression.java:49) > at > org.codehaus.groovy.ast.expr.ArgumentListExpression.transformExpression(ArgumentListExpression.java:67) > at > org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:888) > at > org.codehaus.groovy.control.ResolveVisitor.transformMethodCallExpression(ResolveVisitor.java:1264) > at > org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:879) > at > org.codehaus.groovy.control.ResolveVisitor.transformDeclarationExpression(ResolveVisitor.java:1291) > at > org.codehaus.groovy.control.ResolveVisitor.transform(ResolveVisitor.java:875) > at > org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:142) > at > org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) > at > org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:86) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:106) > at > org.codehaus.groovy.control.ResolveVisitor.visitBlockStatement(ResolveVisitor.java:1553) > at > org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:110) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:121) > at > org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53) > at > org.codehaus.groovy.control.ResolveVisitor.visitConstructorOrMethod(ResolveVisitor.java:257) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:132) > at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1103) > at > org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:54) > at > org.codehaus.groovy.control.ResolveVisitor.visitClass(ResolveVisitor.java:1465) > 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) > ... 47 more > make[1]: *** [gremlin-console] Error 1 > make: *** [test_openjdk_18_x64] Error 2 {code} > An additional bit of information that may help bisect this: Gremlin Console > _does work_ on an M1 Mac with Java 8 update 321 (for more detail see the > sample project). -- This message was sent by Atlassian Jira (v8.20.10#820010)