hotspot/src/share/vm/runtime/reflection.cpp
changeset 21729 6fe1dafeb82e
parent 20017 81eba62e9048
child 22215 579f4a1a4aa6
equal deleted inserted replaced
21556:e75cd34a59e0 21729:6fe1dafeb82e
   468       && UseNewReflection
   468       && UseNewReflection
   469       && current_class->is_subclass_of(SystemDictionary::reflect_MagicAccessorImpl_klass())) {
   469       && current_class->is_subclass_of(SystemDictionary::reflect_MagicAccessorImpl_klass())) {
   470     return true;
   470     return true;
   471   }
   471   }
   472 
   472 
   473   // Also allow all accesses from
       
   474   // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially.
       
   475   if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) {
       
   476     return true;
       
   477   }
       
   478 
       
   479   return can_relax_access_check_for(current_class, new_class, classloader_only);
   473   return can_relax_access_check_for(current_class, new_class, classloader_only);
   480 }
   474 }
   481 
   475 
   482 static bool under_host_klass(InstanceKlass* ik, Klass* host_klass) {
   476 static bool under_host_klass(InstanceKlass* ik, Klass* host_klass) {
   483   DEBUG_ONLY(int inf_loop_check = 1000 * 1000 * 1000);
   477   DEBUG_ONLY(int inf_loop_check = 1000 * 1000 * 1000);
   565   // New (1.4) reflection implementation. Allow all accesses from
   559   // New (1.4) reflection implementation. Allow all accesses from
   566   // sun/reflect/MagicAccessorImpl subclasses to succeed trivially.
   560   // sun/reflect/MagicAccessorImpl subclasses to succeed trivially.
   567   if (   JDK_Version::is_gte_jdk14x_version()
   561   if (   JDK_Version::is_gte_jdk14x_version()
   568       && UseNewReflection
   562       && UseNewReflection
   569       && current_class->is_subclass_of(SystemDictionary::reflect_MagicAccessorImpl_klass())) {
   563       && current_class->is_subclass_of(SystemDictionary::reflect_MagicAccessorImpl_klass())) {
   570     return true;
       
   571   }
       
   572 
       
   573   // Also allow all accesses from
       
   574   // java/lang/invoke/MagicLambdaImpl subclasses to succeed trivially.
       
   575   if (current_class->is_subclass_of(SystemDictionary::lambda_MagicLambdaImpl_klass())) {
       
   576     return true;
   564     return true;
   577   }
   565   }
   578 
   566 
   579   return can_relax_access_check_for(
   567   return can_relax_access_check_for(
   580     current_class, field_class, classloader_only);
   568     current_class, field_class, classloader_only);