498 super_loader, true, |
498 super_loader, true, |
499 CHECK_(false)); |
499 CHECK_(false)); |
500 if (failed_type_symbol != NULL) { |
500 if (failed_type_symbol != NULL) { |
501 stringStream ss; |
501 stringStream ss; |
502 ss.print("loader constraint violation for class %s: when selecting " |
502 ss.print("loader constraint violation for class %s: when selecting " |
503 "overriding method %s the class loader %s of the " |
503 "overriding method '", klass->external_name()); |
|
504 target_method()->print_external_name(&ss), |
|
505 ss.print("' the class loader %s of the " |
504 "selected method's type %s, and the class loader %s for its super " |
506 "selected method's type %s, and the class loader %s for its super " |
505 "type %s have different Class objects for the type %s used in the signature (%s; %s)", |
507 "type %s have different Class objects for the type %s used in the signature (%s; %s)", |
506 klass->external_name(), |
|
507 target_method()->name_and_sig_as_C_string(), |
|
508 target_klass->class_loader_data()->loader_name_and_id(), |
508 target_klass->class_loader_data()->loader_name_and_id(), |
509 target_klass->external_name(), |
509 target_klass->external_name(), |
510 super_klass->class_loader_data()->loader_name_and_id(), |
510 super_klass->class_loader_data()->loader_name_and_id(), |
511 super_klass->external_name(), |
511 super_klass->external_name(), |
512 failed_type_symbol->as_klass_external_name(), |
512 failed_type_symbol->as_klass_external_name(), |
1225 interface_loader, |
1225 interface_loader, |
1226 true, CHECK); |
1226 true, CHECK); |
1227 if (failed_type_symbol != NULL) { |
1227 if (failed_type_symbol != NULL) { |
1228 stringStream ss; |
1228 stringStream ss; |
1229 ss.print("loader constraint violation in interface itable" |
1229 ss.print("loader constraint violation in interface itable" |
1230 " initialization for class %s: when selecting method %s the" |
1230 " initialization for class %s: when selecting method '", |
1231 " class loader %s for super interface %s, and the class" |
1231 _klass->external_name()); |
1232 " loader %s of the selected method's type, %s have" |
1232 m->print_external_name(&ss), |
|
1233 ss.print("' the class loader %s for super interface %s, and the class" |
|
1234 " loader %s of the selected method's %s, %s have" |
1233 " different Class objects for the type %s used in the signature (%s; %s)", |
1235 " different Class objects for the type %s used in the signature (%s; %s)", |
1234 _klass->external_name(), |
|
1235 m->name_and_sig_as_C_string(), |
|
1236 interf->class_loader_data()->loader_name_and_id(), |
1236 interf->class_loader_data()->loader_name_and_id(), |
1237 interf->external_name(), |
1237 interf->external_name(), |
1238 target()->method_holder()->class_loader_data()->loader_name_and_id(), |
1238 target()->method_holder()->class_loader_data()->loader_name_and_id(), |
|
1239 target()->method_holder()->external_kind(), |
1239 target()->method_holder()->external_name(), |
1240 target()->method_holder()->external_name(), |
1240 failed_type_symbol->as_klass_external_name(), |
1241 failed_type_symbol->as_klass_external_name(), |
1241 interf->class_in_module_of_loader(false, true), |
1242 interf->class_in_module_of_loader(false, true), |
1242 target()->method_holder()->class_in_module_of_loader(false, true)); |
1243 target()->method_holder()->class_in_module_of_loader(false, true)); |
1243 THROW_MSG(vmSymbols::java_lang_LinkageError(), ss.as_string()); |
1244 THROW_MSG(vmSymbols::java_lang_LinkageError(), ss.as_string()); |