java.lang.IllegalStateException in getSavedProperty when properties is empty
Max Schulze
max.schulze at uni-muenster.de
Thu Sep 8 17:40:50 UTC 2016
Hello,
I am trying to implement my own virtual machine and making use of the
rt.jar .
I am following the language and vm specification and currently have not
come across formalities that require implementation/prefill of
java.lang.System*props.
When the IntegerCache is being initialized, it calls getSavedProperty
which doesn't like savedProps.isEmpty() at all
(jdk/src/share/classes/sun/misc/VM.java:255) and throws the exception
java.lang.IllegalStateException.
1) What are the minimal properties that have to be initialized for the
runtime to be functioning? I found sun.misc.Version.init(), but is there
any specification of what the bare minimum would be?
2) There is a function initializeSystemClass()
(jdk/src/share/classes/java/lang/System.java:1152) that calls
initProperties(props). This will be called by the JVM at
> hotspot/src/share/vm/runtime/thread.cpp:1048:
> JavaCalls::call_static(&result, klass,
> vmSymbols::initializeSystemClass_name(),
Shouldn't it be part of the JVM Specification to call this
initializeSystemClass on thread setup then, if at all it wants to be
able to run the rt.jar?
Thanks,
Max
PS : talking about 1.8.0_91
(On a side-note, there is activity around moving sun.misc.VM to
jdk.internal.misc for JEP 260/JDK9, but which doesn't change above
mentioned problems)
[1]
http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-January/037853.html
More information about the core-libs-dev
mailing list