arcadedb
arcadedb copied to clipboard
Gremlin doesn't work with Java 16+
ArcadeDB Version: 21.9.1-SNAPSHOT
JDK Version: 16
OS: Mac
Expected behavior
Error on using Gremlin and Cypher.
Actual behavior
At runtime this exception is thrown from the Gremlin stack: Unsupported class file major version 60
Steps to reproduce
mvn clean install
On Apache Tinkerpop Gremlin Jira seems it's an issue with Gradle and Gremlin.
I tried to build the arcadedb-gremlin subproject with Java 17 and got the same issue, when executing the tests, not during compilation of the sources. Which basically means that the gremlin module is not functional, right?
Gremlin uses Gradle that, AFAIK, doesn't work with JDK >14 or even 11.
Gradle already supports JDK 19. It is Tinkerpop which supports a build with JDK 11 only. The message "Unsupported class file major version" might indicate an issue with serialization/deserialization of Java objects. The bad thing is, that because this issue occurs in pretty simple test-cases in the gremlin subproject, I'd assume that we not only have a build issue, but an issue at runtime too.
From Gremlin Discord channel:

It looks like Java11 is the latest.
I see Gremlin already fixes this issue with Gremlin 3.7.0. We'll switch to this release as soon as it will be out.
Tinkerpop 3.7.0 has been released with support for JDK17, see: https://github.com/apache/tinkerpop/blob/master/CHANGELOG.asciidoc#tinkerpop-370-release-date-july-31-2023 @lvca will you include it in 23.7.1 (once the Tinkerpop jars are out)?
I still don't see the artifacts on maven central, I think it still needs to be voted ok. My first pass would be upgrading to 3.6.5 and then testing well for 3.7 in the August release
@lvca while some Gremlin tests are still failing (but not with the version error anymore), compiling and running with JDK17 (tested with OpenJDK17-headless) works with current head. Can this be closed now?