hotspot/src/share/vm/interpreter/linkResolver.cpp
changeset 36822 cdc493d7bc9a
parent 36819 bca375d368ed
parent 36508 5f9eee6b383b
child 37267 ad8c0e8de29f
equal deleted inserted replaced
36821:cd1a170c9019 36822:cdc493d7bc9a
   277 #endif // PRODUCT
   277 #endif // PRODUCT
   278 //------------------------------------------------------------------------------------------------------------------------
   278 //------------------------------------------------------------------------------------------------------------------------
   279 // Klass resolution
   279 // Klass resolution
   280 
   280 
   281 void LinkResolver::check_klass_accessability(KlassHandle ref_klass, KlassHandle sel_klass, TRAPS) {
   281 void LinkResolver::check_klass_accessability(KlassHandle ref_klass, KlassHandle sel_klass, TRAPS) {
   282   if (!Reflection::verify_class_access(ref_klass(),
   282   Reflection::VerifyClassAccessResults vca_result =
   283                                        sel_klass(),
   283     Reflection::verify_class_access(ref_klass(), sel_klass(), true);
   284                                        true)) {
   284   if (vca_result != Reflection::ACCESS_OK) {
   285     ResourceMark rm(THREAD);
   285     ResourceMark rm(THREAD);
   286     Exceptions::fthrow(
   286     char* msg = Reflection::verify_class_access_msg(ref_klass(), sel_klass(), vca_result);
   287       THREAD_AND_LOCATION,
   287     if (msg == NULL) {
   288       vmSymbols::java_lang_IllegalAccessError(),
   288       Exceptions::fthrow(
   289       "tried to access class %s from class %s",
   289         THREAD_AND_LOCATION,
   290       sel_klass->external_name(),
   290         vmSymbols::java_lang_IllegalAccessError(),
   291       ref_klass->external_name()
   291         "failed to access class %s from class %s",
   292     );
   292         sel_klass->external_name(),
   293     return;
   293         ref_klass->external_name());
       
   294     } else {
       
   295       // Use module specific message returned by verify_class_access_msg().
       
   296       Exceptions::fthrow(
       
   297         THREAD_AND_LOCATION,
       
   298         vmSymbols::java_lang_IllegalAccessError(),
       
   299         "%s", msg);
       
   300     }
   294   }
   301   }
   295 }
   302 }
   296 
   303 
   297 //------------------------------------------------------------------------------------------------------------------------
   304 //------------------------------------------------------------------------------------------------------------------------
   298 // Method resolution
   305 // Method resolution