< prev index next >
src/hotspot/share/classfile/javaClasses.cpp
Print this page
*** 4110,4151 ****
const char* java_lang_ClassLoader::describe_external(const oop loader) {
if (loader == NULL) {
return "<bootstrap>";
}
const char* name = NULL;
oop nameOop = java_lang_ClassLoader::name(loader);
if (nameOop != NULL) {
name = java_lang_String::as_utf8_string(nameOop);
}
stringStream ss;
- const char *seperator;
- // If we have a name set for this loader, display it. Otherwise use
- // the class of the loader.
- if (name != NULL) {
ss.print("\"%s\" (instance of %s", name, loader->klass()->external_name());
! seperator = ", ";
! } else {
! ss.print("instance of %s", loader->klass()->external_name());
! seperator = " (";
! }
!
oop pl = java_lang_ClassLoader::parent(loader);
if (pl != NULL) {
- ss.print("%sparent: ", seperator);
oop parentNameOop = java_lang_ClassLoader::name(pl);
if (parentNameOop != NULL) {
! const char* parentName = java_lang_String::as_utf8_string(parentNameOop);
! if (parentName != NULL) {
! ss.print("\"%s\" ", parentName);
}
}
! ss.print("%s)", pl->klass()->external_name());
} else {
! ss.print("%sparent: <bootstrap>)", seperator);
}
return ss.as_string();
}
// Support for java_lang_System
//
--- 4110,4152 ----
const char* java_lang_ClassLoader::describe_external(const oop loader) {
if (loader == NULL) {
return "<bootstrap>";
}
+ bool well_known_loader = SystemDictionary::is_system_class_loader(loader) ||
+ SystemDictionary::is_platform_class_loader(loader);
+
const char* name = NULL;
oop nameOop = java_lang_ClassLoader::name(loader);
if (nameOop != NULL) {
name = java_lang_String::as_utf8_string(nameOop);
}
+ if (name == NULL) {
+ // Use placeholder for missing name to have fixed message format.
+ name = "<unnamed>";
+ }
stringStream ss;
ss.print("\"%s\" (instance of %s", name, loader->klass()->external_name());
! if (!well_known_loader) {
! const char* parentName = NULL;
oop pl = java_lang_ClassLoader::parent(loader);
if (pl != NULL) {
oop parentNameOop = java_lang_ClassLoader::name(pl);
if (parentNameOop != NULL) {
! parentName = java_lang_String::as_utf8_string(parentNameOop);
! if (parentName == NULL) {
! parentName = "<unnamed>";
}
}
! ss.print(", child of \"%s\" %s", parentName, pl->klass()->external_name());
} else {
! ss.print(", child of <bootstrap>");
! }
}
+ ss.print(")");
+
return ss.as_string();
}
// Support for java_lang_System
//
< prev index next >