janusgraph
janusgraph copied to clipboard
g.E('edge-id').valueMap() failed to run for java.lang.ExceptionInInitializerError
This bug can be reproduced without any configuration. Anyway, if you have configuration and some backends, this bug may be triggered randomly.
The root cause is there is initialization dependency circle for TypeDefinitionCategory and ModifierType. So, it has a workaround:
call "org.janusgraph.graphdb.types.TypeDefinitionCategory.TYPE_MODIFIER_DEFINITION_CATEGORIES" before "org.janusgraph.graphdb.database.management.ModifierType.values()"
For confirmed bugs, please report: Version: 1.0.0 Storage Backend: No specific backend Mixed Index Backend: none Link to discussed bug: none
Steps to Reproduce:
- Download janusgraph-full-1.0.0 and decompression the package.
- Start the gremlin: bin/gremlin.sh
- Link to discussed bug: https://github.com/TheHive-Project/TheHive/issues/1429
- run "org.janusgraph.graphdb.database.management.ModifierType.values()" in the console, and you will see "java.lang.ExceptionInInitializerError"
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib/log4j-slf4j-impl-2.20.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib/logback-classic-1.2.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
plugin activated: tinkerpop.server
plugin activated: tinkerpop.tinkergraph
14:02:13 INFO org.apache.tinkerpop.gremlin.hadoop.jsr223.HadoopGremlinPlugin.getCustomizers - HADOOP_GREMLIN_LIBS is set to: /Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib
14:02:13 WARN org.apache.hadoop.util.NativeCodeLoader.<clinit> - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.spark
plugin activated: tinkerpop.utilities
plugin activated: janusgraph.imports
gremlin> org.janusgraph.graphdb.database.management.ModifierType.values()
java.lang.ExceptionInInitializerError
Type ':help' or ':h' for help.
Display stack trace? [yN]y
java.lang.ExceptionInInitializerError
at org.janusgraph.graphdb.database.management.ModifierType.<clinit>(ModifierType.java:23)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:330)
at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:327)
at java.lang.ClassValue.getFromHashMap(ClassValue.java:229)
at java.lang.ClassValue.getFromBackup(ClassValue.java:211)
at java.lang.ClassValue.get(ClassValue.java:117)
at java.lang.invoke.DirectMethodHandle.checkInitialized(DirectMethodHandle.java:351)
at java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:341)
at java.lang.invoke.DirectMethodHandle.internalMemberNameEnsureInit(DirectMethodHandle.java:291)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at groovysh_evaluate.run(groovysh_evaluate:3)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.selectMethod(IndyInterface.java:355)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at org.apache.groovy.groovysh.Interpreter.evaluate(Interpreter.groovy:82)
at org.apache.groovy.groovysh.Groovysh.execute(Groovysh.groovy:209)
at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.super$3$execute(GremlinGroovysh.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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:1336)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1091)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:146)
at org.apache.tinkerpop.gremlin.console.GremlinGroovysh.execute(GremlinGroovysh.groovy:85)
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:175)
at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:574)
Caused by: java.lang.NullPointerException
at org.janusgraph.graphdb.database.management.ModifierType.values(ModifierType.java:22)
at org.janusgraph.graphdb.types.TypeDefinitionCategory.<clinit>(TypeDefinitionCategory.java:84)
... 39 more
- The workaround is: call "org.janusgraph.graphdb.types.TypeDefinitionCategory.TYPE_MODIFIER_DEFINITION_CATEGORIES" before "org.janusgraph.graphdb.database.management.ModifierType.values()" because there is initialization dependency circle for TypeDefinitionCategory and ModifierType.
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib/log4j-slf4j-impl-2.20.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib/logback-classic-1.2.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
plugin activated: tinkerpop.server
plugin activated: tinkerpop.tinkergraph
14:24:29 INFO org.apache.tinkerpop.gremlin.hadoop.jsr223.HadoopGremlinPlugin.getCustomizers - HADOOP_GREMLIN_LIBS is set to: /Users/hongjizhang/Tools/janusgraph-full-1.0.0/lib
14:24:29 WARN org.apache.hadoop.util.NativeCodeLoader.<clinit> - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.spark
plugin activated: tinkerpop.utilities
plugin activated: janusgraph.imports
gremlin> org.janusgraph.graphdb.types.TypeDefinitionCategory.TYPE_MODIFIER_DEFINITION_CATEGORIES
==>TTL
==>CONSISTENCY_LEVEL
gremlin> org.janusgraph.graphdb.database.management.ModifierType.values()
==>CONSISTENCY
==>TTL
gremlin>