525 }
526
527 instanceKlassHandle loader_ik(THREAD, loader->klass());
528
529 // Invoke the appendToClassPathForInstrumentation method - if the method
530 // is not found it means the loader doesn't support adding to the class path
531 // in the live phase.
532 {
533 JavaValue res(T_VOID);
534 JavaCalls::call_special(&res,
535 loader,
536 loader_ik,
537 vmSymbols::appendToClassPathForInstrumentation_name(),
538 vmSymbols::appendToClassPathForInstrumentation_signature(),
539 path,
540 THREAD);
541 if (HAS_PENDING_EXCEPTION) {
542 Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
543 CLEAR_PENDING_EXCEPTION;
544
545 if (ex_name == vmSymbols::java_lang_NoSuchMethodError()) {
546 return JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED;
547 } else {
548 return JVMTI_ERROR_INTERNAL;
549 }
550 }
551 }
552
553 return JVMTI_ERROR_NONE;
554 } else {
555 return JVMTI_ERROR_WRONG_PHASE;
556 }
557 } /* end AddToSystemClassLoaderSearch */
558
559 //
560 // General functions
561 //
562
563 // phase_ptr - pre-checked for NULL
564 jvmtiError
565 JvmtiEnv::GetPhase(jvmtiPhase* phase_ptr) {
|
525 }
526
527 instanceKlassHandle loader_ik(THREAD, loader->klass());
528
529 // Invoke the appendToClassPathForInstrumentation method - if the method
530 // is not found it means the loader doesn't support adding to the class path
531 // in the live phase.
532 {
533 JavaValue res(T_VOID);
534 JavaCalls::call_special(&res,
535 loader,
536 loader_ik,
537 vmSymbols::appendToClassPathForInstrumentation_name(),
538 vmSymbols::appendToClassPathForInstrumentation_signature(),
539 path,
540 THREAD);
541 if (HAS_PENDING_EXCEPTION) {
542 Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
543 CLEAR_PENDING_EXCEPTION;
544
545 if (ex_name->equals(vmSymbols::java_lang_NoSuchMethodError())) {
546 return JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED;
547 } else {
548 return JVMTI_ERROR_INTERNAL;
549 }
550 }
551 }
552
553 return JVMTI_ERROR_NONE;
554 } else {
555 return JVMTI_ERROR_WRONG_PHASE;
556 }
557 } /* end AddToSystemClassLoaderSearch */
558
559 //
560 // General functions
561 //
562
563 // phase_ptr - pre-checked for NULL
564 jvmtiError
565 JvmtiEnv::GetPhase(jvmtiPhase* phase_ptr) {
|