2082 // also hold array classes. |
2082 // also hold array classes. |
2083 |
2083 |
2084 assert(check->is_instance_klass(), "noninstance in systemdictionary"); |
2084 assert(check->is_instance_klass(), "noninstance in systemdictionary"); |
2085 if ((defining == true) || (k != check)) { |
2085 if ((defining == true) || (k != check)) { |
2086 throwException = true; |
2086 throwException = true; |
2087 ss.print("loader %s", java_lang_ClassLoader::describe_external(class_loader())); |
2087 ss.print("loader %s", loader_data->loader_name_and_id()); |
2088 ss.print(" attempted duplicate %s definition for %s.", |
2088 ss.print(" attempted duplicate %s definition for %s. (%s)", |
2089 k->external_kind(), k->external_name()); |
2089 k->external_kind(), k->external_name(), k->class_in_module_of_loader(false, true)); |
2090 } else { |
2090 } else { |
2091 return; |
2091 return; |
2092 } |
2092 } |
2093 } |
2093 } |
2094 |
2094 |
2098 #endif |
2098 #endif |
2099 |
2099 |
2100 if (throwException == false) { |
2100 if (throwException == false) { |
2101 if (constraints()->check_or_update(k, class_loader, name) == false) { |
2101 if (constraints()->check_or_update(k, class_loader, name) == false) { |
2102 throwException = true; |
2102 throwException = true; |
2103 ss.print("loader constraint violation: loader %s", |
2103 ss.print("loader constraint violation: loader %s", loader_data->loader_name_and_id()); |
2104 java_lang_ClassLoader::describe_external(class_loader())); |
|
2105 ss.print(" wants to load %s %s.", |
2104 ss.print(" wants to load %s %s.", |
2106 k->external_kind(), k->external_name()); |
2105 k->external_kind(), k->external_name()); |
2107 Klass *existing_klass = constraints()->find_constrained_klass(name, class_loader); |
2106 Klass *existing_klass = constraints()->find_constrained_klass(name, class_loader); |
2108 if (existing_klass->class_loader() != class_loader()) { |
2107 if (existing_klass->class_loader() != class_loader()) { |
2109 ss.print(" A different %s with the same name was previously loaded by %s.", |
2108 ss.print(" A different %s with the same name was previously loaded by %s. (%s)", |
2110 existing_klass->external_kind(), |
2109 existing_klass->external_kind(), |
2111 java_lang_ClassLoader::describe_external(existing_klass->class_loader())); |
2110 existing_klass->class_loader_data()->loader_name_and_id(), |
|
2111 existing_klass->class_in_module_of_loader(false, true)); |
|
2112 } else { |
|
2113 ss.print(" (%s)", k->class_in_module_of_loader(false, true)); |
2112 } |
2114 } |
2113 } |
2115 } |
2114 } |
2116 } |
2115 } |
2117 } |
2116 |
2118 |