src/hotspot/share/runtime/reflection.cpp
changeset 54432 532e88de77eb
parent 53590 ce36f8180d03
child 54847 59ea39bb2809
equal deleted inserted replaced
54431:ad9fa99fa48e 54432:532e88de77eb
  1083         if (!method.is_null()) {
  1083         if (!method.is_null()) {
  1084           // Check for abstract methods as well
  1084           // Check for abstract methods as well
  1085           if (method->is_abstract()) {
  1085           if (method->is_abstract()) {
  1086             // new default: 6531596
  1086             // new default: 6531596
  1087             ResourceMark rm(THREAD);
  1087             ResourceMark rm(THREAD);
       
  1088             stringStream ss;
       
  1089             ss.print("'");
       
  1090             Method::print_external_name(&ss, target_klass, method->name(), method->signature());
       
  1091             ss.print("'");
  1088             Handle h_origexception = Exceptions::new_exception(THREAD,
  1092             Handle h_origexception = Exceptions::new_exception(THREAD,
  1089               vmSymbols::java_lang_AbstractMethodError(),
  1093               vmSymbols::java_lang_AbstractMethodError(), ss.as_string());
  1090               Method::name_and_sig_as_C_string(target_klass,
       
  1091               method->name(),
       
  1092               method->signature()));
       
  1093             JavaCallArguments args(h_origexception);
  1094             JavaCallArguments args(h_origexception);
  1094             THROW_ARG_0(vmSymbols::java_lang_reflect_InvocationTargetException(),
  1095             THROW_ARG_0(vmSymbols::java_lang_reflect_InvocationTargetException(),
  1095               vmSymbols::throwable_void_signature(),
  1096               vmSymbols::throwable_void_signature(),
  1096               &args);
  1097               &args);
  1097           }
  1098           }
  1102 
  1103 
  1103   // I believe this is a ShouldNotGetHere case which requires
  1104   // I believe this is a ShouldNotGetHere case which requires
  1104   // an internal vtable bug. If you ever get this please let Karen know.
  1105   // an internal vtable bug. If you ever get this please let Karen know.
  1105   if (method.is_null()) {
  1106   if (method.is_null()) {
  1106     ResourceMark rm(THREAD);
  1107     ResourceMark rm(THREAD);
  1107     THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(),
  1108     stringStream ss;
  1108                 Method::name_and_sig_as_C_string(klass,
  1109     ss.print("'");
  1109                 reflected_method->name(),
  1110     Method::print_external_name(&ss, klass,
  1110                 reflected_method->signature()));
  1111                                      reflected_method->name(),
       
  1112                                      reflected_method->signature());
       
  1113     ss.print("'");
       
  1114     THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(), ss.as_string());
  1111   }
  1115   }
  1112 
  1116 
  1113   assert(ptypes->is_objArray(), "just checking");
  1117   assert(ptypes->is_objArray(), "just checking");
  1114   int args_len = args.is_null() ? 0 : args->length();
  1118   int args_len = args.is_null() ? 0 : args->length();
  1115   // Check number of arguments
  1119   // Check number of arguments