From the old days of HotSpot-Express (hsx), where the same JVM may support multiple versions of the JDK class library, we used the SystemDictionary::InitOption enum to tag "optional" preloaded classes like this in systemDictionary.hpp
do_klass(reflect_Parameter_klass, java_lang_reflect_Parameter, Opt)
resolve_preloaded_classes will silently continue if such an optional class fails to load during VM bootstrap.
However, HotSpot-Express is long gone, and all of these optional classes are defined in java.base. Since java.base is not subsettable, there's no reason for any of them to fail to load.
Also, classes in systemDictionary_jvmci.hpp are tagged like this. The reason is when EnableJVMCI==false, we don't want to load the JVMCI classes:
do_klass(JVMCI_klass, jdk_vm_ci_runtime_JVMCI, Jvmci)
However, using InitOption to accomplish is rather convoluted. It can be simplified.
We should clean up the code and remove the entire SystemDictionary::InitOption enum.
do_klass(reflect_Parameter_klass, java_lang_reflect_Parameter, Opt)
resolve_preloaded_classes will silently continue if such an optional class fails to load during VM bootstrap.
However, HotSpot-Express is long gone, and all of these optional classes are defined in java.base. Since java.base is not subsettable, there's no reason for any of them to fail to load.
Also, classes in systemDictionary_jvmci.hpp are tagged like this. The reason is when EnableJVMCI==false, we don't want to load the JVMCI classes:
do_klass(JVMCI_klass, jdk_vm_ci_runtime_JVMCI, Jvmci)
However, using InitOption to accomplish is rather convoluted. It can be simplified.
We should clean up the code and remove the entire SystemDictionary::InitOption enum.