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 |