-
Notifications
You must be signed in to change notification settings - Fork 871
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
orientdb fails to load on AIX because javascript script engine is missing #5855
Comments
Found a workaround: If I disable warnings in OLogManager before artificially loading Orient class, then it avoids the circular static initialization.
|
No
|
Same problem with zulu openjdk bundle. Using orientdb 2.2.28.
Here is the output from one failing test:
|
When orientdb loads it tries to load the javascript script engine in OScriptManager static block. If the 'javascript' script is not present, Orientdb generates a warning by calling OLogManager.warn(...). This is normally fine, except this happens during the static block initialization call in Orient class.
The OLogManager tries to access ODatabaseRecordThreadLocal which hasn't initialized yet so this creates a circular dependency on partially initialized static objects which then generates NullPointerException since Orient class hasn't finally initialized. Below is stack just before the NPE.
OLogManager should NEVER have a circular dependency on Orient class (via ODatabaseRecordThreadLocal) because it might not have been initialized yet.
All of this is because AIX doesn't ship with the 'javascript' script engine.
Thread [Plug-in of type: com.progress.isq.ipqos.plugin.FathomPlugIn](Class load: ODatabaseRecordThreadLocal)
owns: Class (com.progress.isq.ipqos.Probe) (id=1904)
owns: FathomPlugIn (id=1860)
J9VMInternals.prepare(Class) line: 535
J9VMInternals.initialize(Class) line: 174
OLogManager.log(Object, Level, String, Throwable, Object...) line: 98
OLogManager.warn(Object, String, Object...) line: 187
OScriptManager.() line: 87
Orient.() line: 72
Orient.() line: 63
The text was updated successfully, but these errors were encountered: