1.1 --- a/src/share/vm/runtime/thread.cpp Mon Nov 23 16:24:35 2009 -0500 1.2 +++ b/src/share/vm/runtime/thread.cpp Wed Nov 25 08:37:04 2009 -0800 1.3 @@ -884,6 +884,22 @@ 1.4 vmSymbolHandles::void_method_signature(), CHECK); 1.5 } 1.6 1.7 +#ifdef KERNEL 1.8 +static void set_jkernel_boot_classloader_hook(TRAPS) { 1.9 + klassOop k = SystemDictionary::sun_jkernel_DownloadManager_klass(); 1.10 + instanceKlassHandle klass (THREAD, k); 1.11 + 1.12 + if (k == NULL) { 1.13 + // sun.jkernel.DownloadManager may not present in the JDK; just return 1.14 + return; 1.15 + } 1.16 + 1.17 + JavaValue result(T_VOID); 1.18 + JavaCalls::call_static(&result, klass, vmSymbolHandles::setBootClassLoaderHook_name(), 1.19 + vmSymbolHandles::void_method_signature(), CHECK); 1.20 +} 1.21 +#endif // KERNEL 1.22 + 1.23 static void reset_vm_info_property(TRAPS) { 1.24 // the vm info string 1.25 ResourceMark rm(THREAD); 1.26 @@ -3102,6 +3118,12 @@ 1.27 vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION)); 1.28 } 1.29 1.30 +#ifdef KERNEL 1.31 + if (JDK_Version::is_gte_jdk17x_version()) { 1.32 + set_jkernel_boot_classloader_hook(THREAD); 1.33 + } 1.34 +#endif // KERNEL 1.35 + 1.36 #ifndef SERIALGC 1.37 // Support for ConcurrentMarkSweep. This should be cleaned up 1.38 // and better encapsulated. The ugly nested if test would go away