< prev index next >

src/hotspot/share/runtime/reflection.cpp

Print this page
rev 59276 : [mq]: v2

*** 682,692 **** // not for unsafe anonymous classes - so check host_class if (access.is_private() && host_class == current_class) { if (current_class->is_instance_klass() && member_class->is_instance_klass() ) { InstanceKlass* cur_ik = const_cast<InstanceKlass*>(InstanceKlass::cast(current_class)); InstanceKlass* field_ik = const_cast<InstanceKlass*>(InstanceKlass::cast(member_class)); ! bool access = cur_ik->has_nestmate_access_to(field_ik, THREAD); if (access) { guarantee(resolved_class->is_subclass_of(member_class), "must be!"); return true; } } --- 682,694 ---- // not for unsafe anonymous classes - so check host_class if (access.is_private() && host_class == current_class) { if (current_class->is_instance_klass() && member_class->is_instance_klass() ) { InstanceKlass* cur_ik = const_cast<InstanceKlass*>(InstanceKlass::cast(current_class)); InstanceKlass* field_ik = const_cast<InstanceKlass*>(InstanceKlass::cast(member_class)); ! // Nestmate access checks may require resolution and validation of the nest-host. ! // It is up to the caller to check for pending exceptions and handle appropriately. ! bool access = cur_ik->has_nestmate_access_to(field_ik, CHECK_false); if (access) { guarantee(resolved_class->is_subclass_of(member_class), "must be!"); return true; } }
< prev index next >