< prev index next >

src/share/vm/prims/jvmtiExport.cpp

Print this page
rev 13114 : imported patch 8181917-refactor-ul-logstream-changes-2


 399 }
 400 
 401 void
 402 JvmtiExport::add_default_read_edges(Handle h_module, TRAPS) {
 403   if (!Universe::is_module_initialized()) {
 404     return; // extra safety
 405   }
 406   assert(!h_module.is_null(), "module should always be set");
 407 
 408   // Invoke the transformedByAgent method
 409   JavaValue result(T_VOID);
 410   JavaCalls::call_static(&result,
 411                          SystemDictionary::module_Modules_klass(),
 412                          vmSymbols::transformedByAgent_name(),
 413                          vmSymbols::transformedByAgent_signature(),
 414                          h_module,
 415                          THREAD);
 416 
 417   if (HAS_PENDING_EXCEPTION) {
 418     LogTarget(Trace, jvmti) log;
 419     LogStreamCHeap log_stream(log);
 420     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 421     log_stream.cr();
 422     CLEAR_PENDING_EXCEPTION;
 423     return;
 424   }
 425 }
 426 
 427 jvmtiError
 428 JvmtiExport::add_module_reads(Handle module, Handle to_module, TRAPS) {
 429   if (!Universe::is_module_initialized()) {
 430     return JVMTI_ERROR_NONE; // extra safety
 431   }
 432   assert(!module.is_null(), "module should always be set");
 433   assert(!to_module.is_null(), "to_module should always be set");
 434 
 435   // Invoke the addReads method
 436   JavaValue result(T_VOID);
 437   JavaCalls::call_static(&result,
 438                          SystemDictionary::module_Modules_klass(),
 439                          vmSymbols::addReads_name(),
 440                          vmSymbols::addReads_signature(),
 441                          module,
 442                          to_module,
 443                          THREAD);
 444 
 445   if (HAS_PENDING_EXCEPTION) {
 446     LogTarget(Trace, jvmti) log;
 447     LogStreamCHeap log_stream(log);
 448     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 449     log_stream.cr();
 450     CLEAR_PENDING_EXCEPTION;
 451     return JVMTI_ERROR_INTERNAL;
 452   }
 453   return JVMTI_ERROR_NONE;
 454 }
 455 
 456 jvmtiError
 457 JvmtiExport::add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
 458   if (!Universe::is_module_initialized()) {
 459     return JVMTI_ERROR_NONE; // extra safety
 460   }
 461   assert(!module.is_null(), "module should always be set");
 462   assert(!to_module.is_null(), "to_module should always be set");
 463   assert(!pkg_name.is_null(), "pkg_name should always be set");
 464 
 465   // Invoke the addExports method
 466   JavaValue result(T_VOID);
 467   JavaCalls::call_static(&result,
 468                          SystemDictionary::module_Modules_klass(),
 469                          vmSymbols::addExports_name(),
 470                          vmSymbols::addExports_signature(),
 471                          module,
 472                          pkg_name,
 473                          to_module,
 474                          THREAD);
 475 
 476   if (HAS_PENDING_EXCEPTION) {
 477     Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
 478     LogTarget(Trace, jvmti) log;
 479     LogStreamCHeap log_stream(log);
 480     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 481     log_stream.cr();
 482     CLEAR_PENDING_EXCEPTION;
 483     if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
 484       return JVMTI_ERROR_ILLEGAL_ARGUMENT;
 485     }
 486     return JVMTI_ERROR_INTERNAL;
 487   }
 488   return JVMTI_ERROR_NONE;
 489 }
 490 
 491 jvmtiError
 492 JvmtiExport::add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
 493   if (!Universe::is_module_initialized()) {
 494     return JVMTI_ERROR_NONE; // extra safety
 495   }
 496   assert(!module.is_null(), "module should always be set");
 497   assert(!to_module.is_null(), "to_module should always be set");
 498   assert(!pkg_name.is_null(), "pkg_name should always be set");
 499 
 500   // Invoke the addOpens method
 501   JavaValue result(T_VOID);
 502   JavaCalls::call_static(&result,
 503                          SystemDictionary::module_Modules_klass(),
 504                          vmSymbols::addOpens_name(),
 505                          vmSymbols::addExports_signature(),
 506                          module,
 507                          pkg_name,
 508                          to_module,
 509                          THREAD);
 510 
 511   if (HAS_PENDING_EXCEPTION) {
 512     Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
 513     LogTarget(Trace, jvmti) log;
 514     LogStreamCHeap log_stream(log);
 515     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 516     log_stream.cr();
 517     CLEAR_PENDING_EXCEPTION;
 518     if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
 519       return JVMTI_ERROR_ILLEGAL_ARGUMENT;
 520     }
 521     return JVMTI_ERROR_INTERNAL;
 522   }
 523   return JVMTI_ERROR_NONE;
 524 }
 525 
 526 jvmtiError
 527 JvmtiExport::add_module_uses(Handle module, Handle service, TRAPS) {
 528   if (!Universe::is_module_initialized()) {
 529     return JVMTI_ERROR_NONE; // extra safety
 530   }
 531   assert(!module.is_null(), "module should always be set");
 532   assert(!service.is_null(), "service should always be set");
 533 
 534   // Invoke the addUses method
 535   JavaValue result(T_VOID);
 536   JavaCalls::call_static(&result,
 537                          SystemDictionary::module_Modules_klass(),
 538                          vmSymbols::addUses_name(),
 539                          vmSymbols::addUses_signature(),
 540                          module,
 541                          service,
 542                          THREAD);
 543 
 544   if (HAS_PENDING_EXCEPTION) {
 545     LogTarget(Trace, jvmti) log;
 546     LogStreamCHeap log_stream(log);
 547     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 548     log_stream.cr();
 549     CLEAR_PENDING_EXCEPTION;
 550     return JVMTI_ERROR_INTERNAL;
 551   }
 552   return JVMTI_ERROR_NONE;
 553 }
 554 
 555 jvmtiError
 556 JvmtiExport::add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS) {
 557   if (!Universe::is_module_initialized()) {
 558     return JVMTI_ERROR_NONE; // extra safety
 559   }
 560   assert(!module.is_null(), "module should always be set");
 561   assert(!service.is_null(), "service should always be set");
 562   assert(!impl_class.is_null(), "impl_class should always be set");
 563 
 564   // Invoke the addProvides method
 565   JavaValue result(T_VOID);
 566   JavaCalls::call_static(&result,
 567                          SystemDictionary::module_Modules_klass(),
 568                          vmSymbols::addProvides_name(),
 569                          vmSymbols::addProvides_signature(),
 570                          module,
 571                          service,
 572                          impl_class,
 573                          THREAD);
 574 
 575   if (HAS_PENDING_EXCEPTION) {
 576     LogTarget(Trace, jvmti) log;
 577     LogStreamCHeap log_stream(log);
 578     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 579     log_stream.cr();
 580     CLEAR_PENDING_EXCEPTION;
 581     return JVMTI_ERROR_INTERNAL;
 582   }
 583   return JVMTI_ERROR_NONE;
 584 }
 585 
 586 void
 587 JvmtiExport::decode_version_values(jint version, int * major, int * minor,
 588                                    int * micro) {
 589   *major = (version & JVMTI_VERSION_MASK_MAJOR) >> JVMTI_VERSION_SHIFT_MAJOR;
 590   *minor = (version & JVMTI_VERSION_MASK_MINOR) >> JVMTI_VERSION_SHIFT_MINOR;
 591   *micro = (version & JVMTI_VERSION_MASK_MICRO) >> JVMTI_VERSION_SHIFT_MICRO;
 592 }
 593 
 594 void JvmtiExport::enter_primordial_phase() {
 595   JvmtiEnvBase::set_phase(JVMTI_PHASE_PRIMORDIAL);
 596 }
 597 




 399 }
 400 
 401 void
 402 JvmtiExport::add_default_read_edges(Handle h_module, TRAPS) {
 403   if (!Universe::is_module_initialized()) {
 404     return; // extra safety
 405   }
 406   assert(!h_module.is_null(), "module should always be set");
 407 
 408   // Invoke the transformedByAgent method
 409   JavaValue result(T_VOID);
 410   JavaCalls::call_static(&result,
 411                          SystemDictionary::module_Modules_klass(),
 412                          vmSymbols::transformedByAgent_name(),
 413                          vmSymbols::transformedByAgent_signature(),
 414                          h_module,
 415                          THREAD);
 416 
 417   if (HAS_PENDING_EXCEPTION) {
 418     LogTarget(Trace, jvmti) log;
 419     LogStream log_stream(log);
 420     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 421     log_stream.cr();
 422     CLEAR_PENDING_EXCEPTION;
 423     return;
 424   }
 425 }
 426 
 427 jvmtiError
 428 JvmtiExport::add_module_reads(Handle module, Handle to_module, TRAPS) {
 429   if (!Universe::is_module_initialized()) {
 430     return JVMTI_ERROR_NONE; // extra safety
 431   }
 432   assert(!module.is_null(), "module should always be set");
 433   assert(!to_module.is_null(), "to_module should always be set");
 434 
 435   // Invoke the addReads method
 436   JavaValue result(T_VOID);
 437   JavaCalls::call_static(&result,
 438                          SystemDictionary::module_Modules_klass(),
 439                          vmSymbols::addReads_name(),
 440                          vmSymbols::addReads_signature(),
 441                          module,
 442                          to_module,
 443                          THREAD);
 444 
 445   if (HAS_PENDING_EXCEPTION) {
 446     LogTarget(Trace, jvmti) log;
 447     LogStream log_stream(log);
 448     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 449     log_stream.cr();
 450     CLEAR_PENDING_EXCEPTION;
 451     return JVMTI_ERROR_INTERNAL;
 452   }
 453   return JVMTI_ERROR_NONE;
 454 }
 455 
 456 jvmtiError
 457 JvmtiExport::add_module_exports(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
 458   if (!Universe::is_module_initialized()) {
 459     return JVMTI_ERROR_NONE; // extra safety
 460   }
 461   assert(!module.is_null(), "module should always be set");
 462   assert(!to_module.is_null(), "to_module should always be set");
 463   assert(!pkg_name.is_null(), "pkg_name should always be set");
 464 
 465   // Invoke the addExports method
 466   JavaValue result(T_VOID);
 467   JavaCalls::call_static(&result,
 468                          SystemDictionary::module_Modules_klass(),
 469                          vmSymbols::addExports_name(),
 470                          vmSymbols::addExports_signature(),
 471                          module,
 472                          pkg_name,
 473                          to_module,
 474                          THREAD);
 475 
 476   if (HAS_PENDING_EXCEPTION) {
 477     Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
 478     LogTarget(Trace, jvmti) log;
 479     LogStream log_stream(log);
 480     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 481     log_stream.cr();
 482     CLEAR_PENDING_EXCEPTION;
 483     if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
 484       return JVMTI_ERROR_ILLEGAL_ARGUMENT;
 485     }
 486     return JVMTI_ERROR_INTERNAL;
 487   }
 488   return JVMTI_ERROR_NONE;
 489 }
 490 
 491 jvmtiError
 492 JvmtiExport::add_module_opens(Handle module, Handle pkg_name, Handle to_module, TRAPS) {
 493   if (!Universe::is_module_initialized()) {
 494     return JVMTI_ERROR_NONE; // extra safety
 495   }
 496   assert(!module.is_null(), "module should always be set");
 497   assert(!to_module.is_null(), "to_module should always be set");
 498   assert(!pkg_name.is_null(), "pkg_name should always be set");
 499 
 500   // Invoke the addOpens method
 501   JavaValue result(T_VOID);
 502   JavaCalls::call_static(&result,
 503                          SystemDictionary::module_Modules_klass(),
 504                          vmSymbols::addOpens_name(),
 505                          vmSymbols::addExports_signature(),
 506                          module,
 507                          pkg_name,
 508                          to_module,
 509                          THREAD);
 510 
 511   if (HAS_PENDING_EXCEPTION) {
 512     Symbol* ex_name = PENDING_EXCEPTION->klass()->name();
 513     LogTarget(Trace, jvmti) log;
 514     LogStream log_stream(log);
 515     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 516     log_stream.cr();
 517     CLEAR_PENDING_EXCEPTION;
 518     if (ex_name == vmSymbols::java_lang_IllegalArgumentException()) {
 519       return JVMTI_ERROR_ILLEGAL_ARGUMENT;
 520     }
 521     return JVMTI_ERROR_INTERNAL;
 522   }
 523   return JVMTI_ERROR_NONE;
 524 }
 525 
 526 jvmtiError
 527 JvmtiExport::add_module_uses(Handle module, Handle service, TRAPS) {
 528   if (!Universe::is_module_initialized()) {
 529     return JVMTI_ERROR_NONE; // extra safety
 530   }
 531   assert(!module.is_null(), "module should always be set");
 532   assert(!service.is_null(), "service should always be set");
 533 
 534   // Invoke the addUses method
 535   JavaValue result(T_VOID);
 536   JavaCalls::call_static(&result,
 537                          SystemDictionary::module_Modules_klass(),
 538                          vmSymbols::addUses_name(),
 539                          vmSymbols::addUses_signature(),
 540                          module,
 541                          service,
 542                          THREAD);
 543 
 544   if (HAS_PENDING_EXCEPTION) {
 545     LogTarget(Trace, jvmti) log;
 546     LogStream log_stream(log);
 547     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 548     log_stream.cr();
 549     CLEAR_PENDING_EXCEPTION;
 550     return JVMTI_ERROR_INTERNAL;
 551   }
 552   return JVMTI_ERROR_NONE;
 553 }
 554 
 555 jvmtiError
 556 JvmtiExport::add_module_provides(Handle module, Handle service, Handle impl_class, TRAPS) {
 557   if (!Universe::is_module_initialized()) {
 558     return JVMTI_ERROR_NONE; // extra safety
 559   }
 560   assert(!module.is_null(), "module should always be set");
 561   assert(!service.is_null(), "service should always be set");
 562   assert(!impl_class.is_null(), "impl_class should always be set");
 563 
 564   // Invoke the addProvides method
 565   JavaValue result(T_VOID);
 566   JavaCalls::call_static(&result,
 567                          SystemDictionary::module_Modules_klass(),
 568                          vmSymbols::addProvides_name(),
 569                          vmSymbols::addProvides_signature(),
 570                          module,
 571                          service,
 572                          impl_class,
 573                          THREAD);
 574 
 575   if (HAS_PENDING_EXCEPTION) {
 576     LogTarget(Trace, jvmti) log;
 577     LogStream log_stream(log);
 578     java_lang_Throwable::print(PENDING_EXCEPTION, &log_stream);
 579     log_stream.cr();
 580     CLEAR_PENDING_EXCEPTION;
 581     return JVMTI_ERROR_INTERNAL;
 582   }
 583   return JVMTI_ERROR_NONE;
 584 }
 585 
 586 void
 587 JvmtiExport::decode_version_values(jint version, int * major, int * minor,
 588                                    int * micro) {
 589   *major = (version & JVMTI_VERSION_MASK_MAJOR) >> JVMTI_VERSION_SHIFT_MAJOR;
 590   *minor = (version & JVMTI_VERSION_MASK_MINOR) >> JVMTI_VERSION_SHIFT_MINOR;
 591   *micro = (version & JVMTI_VERSION_MASK_MICRO) >> JVMTI_VERSION_SHIFT_MICRO;
 592 }
 593 
 594 void JvmtiExport::enter_primordial_phase() {
 595   JvmtiEnvBase::set_phase(JVMTI_PHASE_PRIMORDIAL);
 596 }
 597 


< prev index next >