< prev index next >

src/hotspot/share/oops/klass.cpp

Print this page




 877   } else {
 878     // klass is an array of primitives, module is java.base
 879     module_is_named = true;
 880     module_name_phrase = "module ";
 881     module_name = JAVA_BASE_NAME;
 882     len += JAVA_BASE_NAME_LEN;
 883   }
 884 
 885   // 3. class loader's name_and_id
 886   ClassLoaderData* cld = class_loader_data();
 887   assert(cld != NULL, "class_loader_data should not be null");
 888   const char* loader_name_and_id = cld->loader_name_and_id();
 889   len += strlen(loader_name_and_id);
 890 
 891   // 4. include parent loader information
 892   const char* parent_loader_phrase = "";
 893   const char* parent_loader_name_and_id = "";
 894   if (include_parent_loader &&
 895       !cld->is_builtin_class_loader_data()) {
 896     oop parent_loader = java_lang_ClassLoader::parent(class_loader());
 897     ClassLoaderData *parent_cld = ClassLoaderData::class_loader_data(parent_loader);
 898     assert(parent_cld != NULL, "parent's class loader data should not be null");
 899     parent_loader_name_and_id = parent_cld->loader_name_and_id();
 900     parent_loader_phrase = ", parent loader ";
 901     len += strlen(parent_loader_phrase) + strlen(parent_loader_name_and_id);
 902   }
 903 
 904   // Start to construct final full class description string
 905   len += ((use_are) ? strlen(" are in ") : strlen(" is in "));
 906   len += strlen(module_name_phrase) + strlen(" of loader ");
 907 
 908   char* class_description = NEW_RESOURCE_ARRAY_RETURN_NULL(char, len);
 909 
 910   // Just return the FQN if error when allocating string
 911   if (class_description == NULL) {
 912     return klass_name;
 913   }
 914 
 915   jio_snprintf(class_description, len, "%s %s in %s%s%s%s of loader %s%s%s",
 916                klass_name,
 917                (use_are) ? "are" : "is",


 877   } else {
 878     // klass is an array of primitives, module is java.base
 879     module_is_named = true;
 880     module_name_phrase = "module ";
 881     module_name = JAVA_BASE_NAME;
 882     len += JAVA_BASE_NAME_LEN;
 883   }
 884 
 885   // 3. class loader's name_and_id
 886   ClassLoaderData* cld = class_loader_data();
 887   assert(cld != NULL, "class_loader_data should not be null");
 888   const char* loader_name_and_id = cld->loader_name_and_id();
 889   len += strlen(loader_name_and_id);
 890 
 891   // 4. include parent loader information
 892   const char* parent_loader_phrase = "";
 893   const char* parent_loader_name_and_id = "";
 894   if (include_parent_loader &&
 895       !cld->is_builtin_class_loader_data()) {
 896     oop parent_loader = java_lang_ClassLoader::parent(class_loader());
 897     ClassLoaderData *parent_cld = SystemDictionary::register_loader(Handle(Thread::current(), parent_loader));
 898     assert(parent_cld != NULL, "parent's class loader data should not be null");
 899     parent_loader_name_and_id = parent_cld->loader_name_and_id();
 900     parent_loader_phrase = ", parent loader ";
 901     len += strlen(parent_loader_phrase) + strlen(parent_loader_name_and_id);
 902   }
 903 
 904   // Start to construct final full class description string
 905   len += ((use_are) ? strlen(" are in ") : strlen(" is in "));
 906   len += strlen(module_name_phrase) + strlen(" of loader ");
 907 
 908   char* class_description = NEW_RESOURCE_ARRAY_RETURN_NULL(char, len);
 909 
 910   // Just return the FQN if error when allocating string
 911   if (class_description == NULL) {
 912     return klass_name;
 913   }
 914 
 915   jio_snprintf(class_description, len, "%s %s in %s%s%s%s of loader %s%s%s",
 916                klass_name,
 917                (use_are) ? "are" : "is",
< prev index next >