diff -r f4fd580dd7d1 -r 843fc56f4686 src/hotspot/share/classfile/javaClasses.cpp --- a/src/hotspot/share/classfile/javaClasses.cpp Fri May 18 15:35:32 2018 +0200 +++ b/src/hotspot/share/classfile/javaClasses.cpp Fri May 18 09:15:08 2018 -0700 @@ -3249,17 +3249,9 @@ Handle java_lang_Module::create(Handle loader, Handle module_name, TRAPS) { assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); - - Symbol* name = vmSymbols::java_lang_Module(); - Klass* k = SystemDictionary::resolve_or_fail(name, true, CHECK_NH); - InstanceKlass* ik = InstanceKlass::cast(k); - Handle jlmh = ik->allocate_instance_handle(CHECK_NH); - JavaValue result(T_VOID); - JavaCalls::call_special(&result, jlmh, ik, - vmSymbols::object_initializer_name(), + return JavaCalls::construct_new_instance(SystemDictionary::Module_klass(), vmSymbols::java_lang_module_init_signature(), loader, module_name, CHECK_NH); - return jlmh; } #define MODULE_FIELDS_DO(macro) \