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