< prev index next >
src/hotspot/share/classfile/classFileParser.cpp
Print this page
rev 50635 : 8199940: Print more information about class loaders in IllegalAccessErrors.
Reviewed-by: lfoltan
@@ -4526,13 +4526,18 @@
vca_result);
if (msg == NULL) {
Exceptions::fthrow(
THREAD_AND_LOCATION,
vmSymbols::java_lang_IllegalAccessError(),
- "class %s cannot access its superclass %s",
+ "class %s cannot access its %ssuperclass %s (%s is in loader %s; %s is in loader %s)",
this_klass->external_name(),
- super->external_name());
+ super->is_abstract() ? "abstract " : "",
+ super->external_name(),
+ this_klass->external_name(),
+ this_klass->class_loader_data()->loader_name_and_id(),
+ super->external_name(),
+ super->class_loader_data()->loader_name_and_id());
} else {
// Add additional message content.
Exceptions::fthrow(
THREAD_AND_LOCATION,
vmSymbols::java_lang_IllegalAccessError(),
@@ -4560,13 +4565,17 @@
vca_result);
if (msg == NULL) {
Exceptions::fthrow(
THREAD_AND_LOCATION,
vmSymbols::java_lang_IllegalAccessError(),
- "class %s cannot access its superinterface %s",
+ "class %s cannot access its superinterface %s (%s is in loader %s; %s is in loader %s)",
+ this_klass->external_name(),
+ k->external_name(),
this_klass->external_name(),
- k->external_name());
+ this_klass->class_loader_data()->loader_name_and_id(),
+ k->external_name(),
+ k->class_loader_data()->loader_name_and_id());
} else {
// Add additional message content.
Exceptions::fthrow(
THREAD_AND_LOCATION,
vmSymbols::java_lang_IllegalAccessError(),
< prev index next >