1.1 --- a/src/share/vm/runtime/thread.cpp Fri Aug 30 00:29:52 2013 -0700 1.2 +++ b/src/share/vm/runtime/thread.cpp Mon Sep 02 13:13:45 2013 +0200 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