Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

g.E('edge-id').valueMap() failed to run for java.lang.ExceptionInInitializerError #4658

Open
ministat opened this issue Aug 26, 2024 · 0 comments

Comments

@ministat
Copy link
Contributor

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:

  1. Download janusgraph-full-1.0.0 and decompression the package.
  2. Start the gremlin: bin/gremlin.sh
  3. Link to discussed bug: [Bug] TheHive doesn't start correctly TheHive-Project/TheHive#1429
  4. 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
  1. 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> 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
@ministat and others