< 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 >