1.1 --- a/src/share/vm/runtime/thread.cpp Fri Sep 06 09:55:38 2013 +0100 1.2 +++ b/src/share/vm/runtime/thread.cpp Sat Sep 14 20:40:34 2013 +0100 1.3 @@ -3636,6 +3636,16 @@ 1.4 CompileBroker::compilation_init(); 1.5 #endif 1.6 1.7 + if (EnableInvokeDynamic) { 1.8 + // Pre-initialize some JSR292 core classes to avoid deadlock during class loading. 1.9 + // It is done after compilers are initialized, because otherwise compilations of 1.10 + // signature polymorphic MH intrinsics can be missed 1.11 + // (see SystemDictionary::find_method_handle_intrinsic). 1.12 + initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK_0); 1.13 + initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0); 1.14 + initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0); 1.15 + } 1.16 + 1.17 #if INCLUDE_MANAGEMENT 1.18 Management::initialize(THREAD); 1.19 #endif // INCLUDE_MANAGEMENT