1.1 --- a/src/share/vm/classfile/systemDictionary.cpp Tue Feb 04 11:16:27 2020 +0800 1.2 +++ b/src/share/vm/classfile/systemDictionary.cpp Fri Feb 14 17:13:16 2020 +0100 1.3 @@ -617,7 +617,7 @@ 1.4 (ClassLoaderData*)NULL); 1.5 event.commit(); 1.6 } 1.7 -#endif // INCLUDE_JFR 1.8 +#endif 1.9 } 1.10 1.11 Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name, 1.12 @@ -1337,24 +1337,23 @@ 1.13 if (!k.is_null()) { 1.14 k = find_or_define_instance_class(class_name, class_loader, k, CHECK_(nh)); 1.15 } 1.16 + 1.17 #if INCLUDE_JFR 1.18 - else { 1.19 + if (k.is_null() && (class_name == jfr_event_handler_proxy)) { 1.20 assert(jfr_event_handler_proxy != NULL, "invariant"); 1.21 - if (class_name == jfr_event_handler_proxy) { 1.22 - // EventHandlerProxy class is generated dynamically in 1.23 - // EventHandlerProxyCreator::makeEventHandlerProxyClass 1.24 - // method, so we generate a Java call from here. 1.25 - // 1.26 - // EventHandlerProxy class will finally be defined in 1.27 - // SystemDictionary::resolve_from_stream method, down 1.28 - // the call stack. Bootstrap classloader is parallel-capable, 1.29 - // so no concurrency issues are expected. 1.30 - CLEAR_PENDING_EXCEPTION; 1.31 - k = JfrUpcalls::load_event_handler_proxy_class(THREAD); 1.32 - assert(!k.is_null(), "invariant"); 1.33 - } 1.34 + // EventHandlerProxy class is generated dynamically in 1.35 + // EventHandlerProxyCreator::makeEventHandlerProxyClass 1.36 + // method, so we generate a Java call from here. 1.37 + // 1.38 + // EventHandlerProxy class will finally be defined in 1.39 + // SystemDictionary::resolve_from_stream method, down 1.40 + // the call stack. Bootstrap classloader is parallel-capable, 1.41 + // so no concurrency issues are expected. 1.42 + CLEAR_PENDING_EXCEPTION; 1.43 + k = JfrUpcalls::load_event_handler_proxy_class(THREAD); 1.44 + assert(!k.is_null(), "invariant"); 1.45 } 1.46 -#endif // INCLUDE_JFR 1.47 +#endif 1.48 1.49 return k; 1.50 } else {