< prev index next >

src/share/vm/services/attachListener.cpp

Print this page

        

*** 44,84 **** // Implementation of "properties" command. // // Invokes VMSupport.serializePropertiesToByteArray to serialize // the system properties into a byte array. ! static Klass* load_and_initialize_klass(Symbol* sh, TRAPS) { Klass* k = SystemDictionary::resolve_or_fail(sh, true, CHECK_NULL); ! instanceKlassHandle ik (THREAD, k); if (ik->should_be_initialized()) { ik->initialize(CHECK_NULL); } ! return ik(); } static jint get_properties(AttachOperation* op, outputStream* out, Symbol* serializePropertiesMethod) { Thread* THREAD = Thread::current(); HandleMark hm; // load VMSupport Symbol* klass = vmSymbols::jdk_internal_vm_VMSupport(); ! Klass* k = load_and_initialize_klass(klass, THREAD); if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, out); CLEAR_PENDING_EXCEPTION; return JNI_ERR; } - instanceKlassHandle ik(THREAD, k); // invoke the serializePropertiesToByteArray method JavaValue result(T_OBJECT); JavaCallArguments args; Symbol* signature = vmSymbols::serializePropertiesToByteArray_signature(); JavaCalls::call_static(&result, ! ik, serializePropertiesMethod, signature, &args, THREAD); if (HAS_PENDING_EXCEPTION) { --- 44,83 ---- // Implementation of "properties" command. // // Invokes VMSupport.serializePropertiesToByteArray to serialize // the system properties into a byte array. ! static InstanceKlass* load_and_initialize_klass(Symbol* sh, TRAPS) { Klass* k = SystemDictionary::resolve_or_fail(sh, true, CHECK_NULL); ! InstanceKlass* ik = InstanceKlass::cast(k); if (ik->should_be_initialized()) { ik->initialize(CHECK_NULL); } ! return ik; } static jint get_properties(AttachOperation* op, outputStream* out, Symbol* serializePropertiesMethod) { Thread* THREAD = Thread::current(); HandleMark hm; // load VMSupport Symbol* klass = vmSymbols::jdk_internal_vm_VMSupport(); ! InstanceKlass* k = load_and_initialize_klass(klass, THREAD); if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, out); CLEAR_PENDING_EXCEPTION; return JNI_ERR; } // invoke the serializePropertiesToByteArray method JavaValue result(T_OBJECT); JavaCallArguments args; Symbol* signature = vmSymbols::serializePropertiesToByteArray_signature(); JavaCalls::call_static(&result, ! k, serializePropertiesMethod, signature, &args, THREAD); if (HAS_PENDING_EXCEPTION) {
*** 372,382 **** Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, THREAD); if (has_init_error(THREAD)) { return; } ! instanceKlassHandle klass (THREAD, k); instanceHandle thread_oop = klass->allocate_instance_handle(THREAD); if (has_init_error(THREAD)) { return; } --- 371,381 ---- Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, THREAD); if (has_init_error(THREAD)) { return; } ! InstanceKlass* klass = InstanceKlass::cast(k); instanceHandle thread_oop = klass->allocate_instance_handle(THREAD); if (has_init_error(THREAD)) { return; }
*** 399,409 **** if (has_init_error(THREAD)) { return; } ! KlassHandle group(THREAD, SystemDictionary::ThreadGroup_klass()); JavaCalls::call_special(&result, thread_group, group, vmSymbols::add_method_name(), vmSymbols::thread_void_signature(), --- 398,408 ---- if (has_init_error(THREAD)) { return; } ! Klass* group = SystemDictionary::ThreadGroup_klass(); JavaCalls::call_special(&result, thread_group, group, vmSymbols::add_method_name(), vmSymbols::thread_void_signature(),
< prev index next >