File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3144,10 +3144,14 @@ JVM_ENTRY(jobject, JVM_LatestUserDefinedLoader(JNIEnv *env))
31443144 for (vframeStream vfst (thread); !vfst.at_end(); vfst.next()) {
31453145#if HOTSPOT_TARGET_CLASSLIB == 8
31463146 // UseNewReflection
3147- vfst.skip_reflection_related_frames (); // Only needed for 1.4 reflection
3148- oop loader = vfst.method ()->method_holder ()->class_loader ();
3147+ InstanceKlass* ik = vfst.method ()->method_holder ();
3148+ oop loader = ik->class_loader ();
3149+ // vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection
31493150 if (loader != nullptr && !SystemDictionary::is_ext_class_loader (Handle (THREAD, loader))) {
3150- return JNIHandles::make_local (THREAD, loader);
3151+ if (!ik->is_subclass_of (vmClasses::reflect_MethodAccessorImpl_klass ()) &&
3152+ !ik->is_subclass_of (vmClasses::reflect_ConstructorAccessorImpl_klass ())) {
3153+ return JNIHandles::make_local (THREAD, loader);
3154+ }
31513155 }
31523156#else
31533157 InstanceKlass* ik = vfst.method ()->method_holder ();
Original file line number Diff line number Diff line change @@ -564,11 +564,6 @@ void vframeStreamCommon::security_next() {
564564
565565#if HOTSPOT_TARGET_CLASSLIB == 8
566566void vframeStreamCommon::skip_reflection_related_frames () {
567- while (!at_end () &&
568- (method ()->method_holder ()->is_subclass_of (vmClasses::reflect_MethodAccessorImpl_klass ()) ||
569- method ()->method_holder ()->is_subclass_of (vmClasses::reflect_ConstructorAccessorImpl_klass ()))) {
570- next ();
571- }
572567}
573568#endif
574569
You can’t perform that action at this time.
0 commit comments