src/share/vm/classfile/systemDictionary.cpp

changeset 9892
9a4141de094d
parent 9886
986b79fabfa0
child 9931
fd44df5e3bc3
child 9966
baf9f57c9b46
equal deleted inserted replaced
9891:4904bded9702 9892:9a4141de094d
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);

mercurial