comparison src/share/vm/runtime/thread.cpp @ 1115:4b966d9946a3

6888880: JKernel VM to inject the sun.jkernel.DownloadManager as a boot classloader hook Summary: Call sun.jkernel.DownloadManager.setBootClassLoaderHook during the kernel VM initialization Reviewed-by: alanb, coleenp, acorn
author mchung
date Wed, 25 Nov 2009 08:37:04 -0800
parents 39b01ab7035a
children 547f81740344
comparison
equal deleted inserted replaced
1076:1920bd911283 1115:4b966d9946a3
881 881
882 JavaValue result(T_VOID); 882 JavaValue result(T_VOID);
883 JavaCalls::call_static(&result, klass, vmSymbolHandles::initializeSystemClass_name(), 883 JavaCalls::call_static(&result, klass, vmSymbolHandles::initializeSystemClass_name(),
884 vmSymbolHandles::void_method_signature(), CHECK); 884 vmSymbolHandles::void_method_signature(), CHECK);
885 } 885 }
886
887 #ifdef KERNEL
888 static void set_jkernel_boot_classloader_hook(TRAPS) {
889 klassOop k = SystemDictionary::sun_jkernel_DownloadManager_klass();
890 instanceKlassHandle klass (THREAD, k);
891
892 if (k == NULL) {
893 // sun.jkernel.DownloadManager may not present in the JDK; just return
894 return;
895 }
896
897 JavaValue result(T_VOID);
898 JavaCalls::call_static(&result, klass, vmSymbolHandles::setBootClassLoaderHook_name(),
899 vmSymbolHandles::void_method_signature(), CHECK);
900 }
901 #endif // KERNEL
886 902
887 static void reset_vm_info_property(TRAPS) { 903 static void reset_vm_info_property(TRAPS) {
888 // the vm info string 904 // the vm info string
889 ResourceMark rm(THREAD); 905 ResourceMark rm(THREAD);
890 const char *vm_info = VM_Version::vm_info_string(); 906 const char *vm_info = VM_Version::vm_info_string();
3100 SystemDictionary::compute_java_system_loader(THREAD); 3116 SystemDictionary::compute_java_system_loader(THREAD);
3101 if (HAS_PENDING_EXCEPTION) { 3117 if (HAS_PENDING_EXCEPTION) {
3102 vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION)); 3118 vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION));
3103 } 3119 }
3104 3120
3121 #ifdef KERNEL
3122 if (JDK_Version::is_gte_jdk17x_version()) {
3123 set_jkernel_boot_classloader_hook(THREAD);
3124 }
3125 #endif // KERNEL
3126
3105 #ifndef SERIALGC 3127 #ifndef SERIALGC
3106 // Support for ConcurrentMarkSweep. This should be cleaned up 3128 // Support for ConcurrentMarkSweep. This should be cleaned up
3107 // and better encapsulated. The ugly nested if test would go away 3129 // and better encapsulated. The ugly nested if test would go away
3108 // once things are properly refactored. XXX YSR 3130 // once things are properly refactored. XXX YSR
3109 if (UseConcMarkSweepGC || UseG1GC) { 3131 if (UseConcMarkSweepGC || UseG1GC) {