Stephen Mallette created TINKERPOP-3162:
-------------------------------------------

             Summary: Gryo writes illegal reflective access operations for 
AtomicLong in JDK17
                 Key: TINKERPOP-3162
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3162
             Project: TinkerPop
          Issue Type: Bug
          Components: io
    Affects Versions: 3.7.3
            Reporter: Stephen Mallette


Noticed in Gremlin Console:

{code}
gremlin> g.io('../../../data/air-routes.graphml').read()
gremlin> g.io('air-routes.kryo').write()
Unable to create serializer 
"org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer" for class: 
java.util.concurrent.atomic.AtomicLong
Type ':help' or ':h' for help.
Display stack trace? [yN]y
java.lang.IllegalArgumentException: Unable to create serializer 
"org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer" for class: 
java.util.concurrent.atomic.AtomicLong
        at 
org.apache.tinkerpop.shaded.kryo.factories.ReflectionSerializerFactory.makeSerializer(ReflectionSerializerFactory.java:67)
        at 
org.apache.tinkerpop.shaded.kryo.factories.ReflectionSerializerFactory.makeSerializer(ReflectionSerializerFactory.java:45)
        at 
org.apache.tinkerpop.shaded.kryo.Kryo.newDefaultSerializer(Kryo.java:380)
        at 
org.apache.tinkerpop.shaded.kryo.Kryo.getDefaultSerializer(Kryo.java:364)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoTypeReg.registerWith(GryoTypeReg.java:122)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper.createMapper(GryoMapper.java:101)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper.createMapper(GryoMapper.java:75)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoWriter.<init>(GryoWriter.java:52)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoWriter.<init>(GryoWriter.java:48)
        at 
org.apache.tinkerpop.gremlin.structure.io.gryo.GryoWriter$Builder.create(GryoWriter.java:183)
        at 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IoStep.constructWriter(IoStep.java:190)
        at 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IoStep.write(IoStep.java:121)
        at 
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IoStep.processNextStart(IoStep.java:112)
        at 
org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:155)
        at 
org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:198)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at 
org.apache.tinkerpop.gremlin.console.Console$_closure3.doCall(Console.groovy:267)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
        at 
org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:280)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1007)
        at groovy.lang.Closure.call(Closure.java:433)
        at groovy.lang.Closure.call(Closure.java:422)
        at 
org.apache.groovy.groovysh.Groovysh.setLastResult(Groovysh.groovy:483)
        at org.apache.groovy.groovysh.Groovysh.execute(Groovysh.groovy:209)
        at 
org.apache.tinkerpop.gremlin.console.GremlinGroovysh.super$3$execute(GremlinGroovysh.groovy)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
        at groovy.lang.MetaClassImpl.doInvokeMethod(MetaClassImpl.java:1333)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1088)
        at 
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:146)
        at 
org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:87)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at org.apache.groovy.groovysh.Shell.leftShift(Shell.groovy:121)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at org.apache.groovy.groovysh.ShellRunner.work(ShellRunner.groovy:93)
        at 
org.apache.groovy.groovysh.InteractiveShellRunner.work(InteractiveShellRunner.groovy:124)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at org.apache.groovy.groovysh.ShellRunner.run(ShellRunner.groovy:57)
        at 
org.apache.groovy.groovysh.InteractiveShellRunner.run(InteractiveShellRunner.groovy:96)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at 
org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:180)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
        at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:579)
Caused by: java.lang.reflect.InvocationTargetException
        at 
jdk.internal.reflect.GeneratedConstructorAccessor8.newInstance(Unknown Source)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at 
org.apache.tinkerpop.shaded.kryo.factories.ReflectionSerializerFactory.makeSerializer(ReflectionSerializerFactory.java:54)
        ... 51 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field 
private volatile long java.util.concurrent.atomic.AtomicLong.value accessible: 
module java.base does not "opens java.util.concurrent.atomic" to unnamed module 
@769e7ee8
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
        at 
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at 
java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
        at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
        at 
org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer.buildValidFields(FieldSerializer.java:306)
        at 
org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer.rebuildCachedFields(FieldSerializer.java:239)
        at 
org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer.rebuildCachedFields(FieldSerializer.java:182)
        at 
org.apache.tinkerpop.shaded.kryo.serializers.FieldSerializer.<init>(FieldSerializer.java:155)
        ... 56 more
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to