Mercurial > hg > truffle
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) { |