615 event.set_initiatingClassLoader(class_loader != NULL ? |
615 event.set_initiatingClassLoader(class_loader != NULL ? |
616 ClassLoaderData::class_loader_data_or_null(class_loader) : |
616 ClassLoaderData::class_loader_data_or_null(class_loader) : |
617 (ClassLoaderData*)NULL); |
617 (ClassLoaderData*)NULL); |
618 event.commit(); |
618 event.commit(); |
619 } |
619 } |
620 #endif // INCLUDE_JFR |
620 #endif |
621 } |
621 } |
622 |
622 |
623 Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name, |
623 Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name, |
624 Handle class_loader, |
624 Handle class_loader, |
625 Handle protection_domain, |
625 Handle protection_domain, |
1335 |
1335 |
1336 // find_or_define_instance_class may return a different InstanceKlass |
1336 // find_or_define_instance_class may return a different InstanceKlass |
1337 if (!k.is_null()) { |
1337 if (!k.is_null()) { |
1338 k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh)); |
1338 k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh)); |
1339 } |
1339 } |
|
1340 |
1340 #if INCLUDE_JFR |
1341 #if INCLUDE_JFR |
1341 else { |
1342 if (k.is_null() && (class_name == jfr_event_handler_proxy)) { |
1342 assert(jfr_event_handler_proxy != NULL, "invariant"); |
1343 assert(jfr_event_handler_proxy != NULL, "invariant"); |
1343 if (class_name == jfr_event_handler_proxy) { |
1344 // EventHandlerProxy class is generated dynamically in |
1344 // EventHandlerProxy class is generated dynamically in |
1345 // EventHandlerProxyCreator::makeEventHandlerProxyClass |
1345 // EventHandlerProxyCreator::makeEventHandlerProxyClass |
1346 // method, so we generate a Java call from here. |
1346 // method, so we generate a Java call from here. |
1347 // |
1347 // |
1348 // EventHandlerProxy class will finally be defined in |
1348 // EventHandlerProxy class will finally be defined in |
1349 // SystemDictionary::resolve_from_stream method, down |
1349 // SystemDictionary::resolve_from_stream method, down |
1350 // the call stack. Bootstrap classloader is parallel-capable, |
1350 // the call stack. Bootstrap classloader is parallel-capable, |
1351 // so no concurrency issues are expected. |
1351 // so no concurrency issues are expected. |
1352 CLEAR_PENDING_EXCEPTION; |
1352 CLEAR_PENDING_EXCEPTION; |
1353 k = JfrUpcalls::load_event_handler_proxy_class(THREAD); |
1353 k = JfrUpcalls::load_event_handler_proxy_class(THREAD); |
1354 assert(!k.is_null(), "invariant"); |
1354 assert(!k.is_null(), "invariant"); |
1355 } |
1355 } |
1356 #endif |
1356 } |
|
1357 #endif // INCLUDE_JFR |
|
1358 |
1357 |
1359 return k; |
1358 return k; |
1360 } else { |
1359 } else { |
1361 // Use user specified class loader to load class. Call loadClass operation on class_loader. |
1360 // Use user specified class loader to load class. Call loadClass operation on class_loader. |
1362 ResourceMark rm(THREAD); |
1361 ResourceMark rm(THREAD); |