hotspot/src/share/vm/classfile/modules.cpp
changeset 44326 6c59cca7ff07
parent 43471 bfb383279a16
child 44520 0553e129e0ec
child 46369 3bf4544bec14
equal deleted inserted replaced
44204:8490172c1777 44326:6c59cca7ff07
   323     }
   323     }
   324 
   324 
   325     // Only modules defined to either the boot or platform class loader, can define a "java/" package.
   325     // Only modules defined to either the boot or platform class loader, can define a "java/" package.
   326     if (!h_loader.is_null() &&
   326     if (!h_loader.is_null() &&
   327         !SystemDictionary::is_platform_class_loader(h_loader) &&
   327         !SystemDictionary::is_platform_class_loader(h_loader) &&
   328         strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) {
   328         (strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0 &&
       
   329           (package_name[JAVAPKG_LEN] == '/' || package_name[JAVAPKG_LEN] == '\0'))) {
   329       const char* class_loader_name = SystemDictionary::loader_name(h_loader());
   330       const char* class_loader_name = SystemDictionary::loader_name(h_loader());
   330       size_t pkg_len = strlen(package_name);
   331       size_t pkg_len = strlen(package_name);
   331       char* pkg_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, pkg_len);
   332       char* pkg_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, pkg_len);
   332       strncpy(pkg_name, package_name, pkg_len);
   333       strncpy(pkg_name, package_name, pkg_len);
   333       StringUtils::replace_no_expand(pkg_name, "/", ".");
   334       StringUtils::replace_no_expand(pkg_name, "/", ".");
   746   ClassLoaderData *loader_data = module_entry->loader_data();
   747   ClassLoaderData *loader_data = module_entry->loader_data();
   747 
   748 
   748   // Only modules defined to either the boot or platform class loader, can define a "java/" package.
   749   // Only modules defined to either the boot or platform class loader, can define a "java/" package.
   749   if (!loader_data->is_the_null_class_loader_data() &&
   750   if (!loader_data->is_the_null_class_loader_data() &&
   750       !loader_data->is_platform_class_loader_data() &&
   751       !loader_data->is_platform_class_loader_data() &&
   751       strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0) {
   752       (strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0 &&
       
   753         (package_name[JAVAPKG_LEN] == '/' || package_name[JAVAPKG_LEN] == '\0'))) {
   752     const char* class_loader_name = SystemDictionary::loader_name(loader_data);
   754     const char* class_loader_name = SystemDictionary::loader_name(loader_data);
   753     size_t pkg_len = strlen(package_name);
   755     size_t pkg_len = strlen(package_name);
   754     char* pkg_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, pkg_len);
   756     char* pkg_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, pkg_len);
   755     strncpy(pkg_name, package_name, pkg_len);
   757     strncpy(pkg_name, package_name, pkg_len);
   756     StringUtils::replace_no_expand(pkg_name, "/", ".");
   758     StringUtils::replace_no_expand(pkg_name, "/", ".");