< prev index next >

src/share/vm/classfile/modules.cpp

Print this page

        

*** 175,196 **** for (int x = 0; x < num_packages; x++) { oop string_obj = packages_h->obj_at(x); if (string_obj == NULL || !string_obj->is_a(SystemDictionary::String_klass())) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! "Bad package name for module: java.base"); } char *package_name = java_lang_String::as_utf8_string(string_obj); if (!Modules::verify_package_name(package_name)) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! err_msg("Invalid package name: %s for module: java.base", package_name)); } Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); // append_if_missing() returns FALSE if entry already exists. if (!pkg_list->append_if_missing(pkg_symbol)) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! err_msg("Duplicate package name: %s for module java.base", package_name)); } } // Validate java_base's loader is the boot loader. --- 175,196 ---- for (int x = 0; x < num_packages; x++) { oop string_obj = packages_h->obj_at(x); if (string_obj == NULL || !string_obj->is_a(SystemDictionary::String_klass())) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! "Bad package name for module: " JAVA_BASE_NAME); } char *package_name = java_lang_String::as_utf8_string(string_obj); if (!Modules::verify_package_name(package_name)) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! err_msg("Invalid package name: %s for module: " JAVA_BASE_NAME, package_name)); } Symbol* pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); // append_if_missing() returns FALSE if entry already exists. if (!pkg_list->append_if_missing(pkg_symbol)) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! err_msg("Duplicate package name: %s for module " JAVA_BASE_NAME, package_name)); } } // Validate java_base's loader is the boot loader.
*** 204,214 **** // Ensure the boot loader's PackageEntryTable has been created PackageEntryTable* package_table = get_package_entry_table(h_loader, CHECK); assert(pkg_list->length() == 0 || package_table != NULL, "Bad package_table"); // Ensure java.base's ModuleEntry has been created ! assert(ModuleEntryTable::javabase_moduleEntry() != NULL, "No ModuleEntry for java.base"); bool duplicate_javabase = false; { MutexLocker m1(Module_lock, THREAD); --- 204,214 ---- // Ensure the boot loader's PackageEntryTable has been created PackageEntryTable* package_table = get_package_entry_table(h_loader, CHECK); assert(pkg_list->length() == 0 || package_table != NULL, "Bad package_table"); // Ensure java.base's ModuleEntry has been created ! assert(ModuleEntryTable::javabase_moduleEntry() != NULL, "No ModuleEntry for " JAVA_BASE_NAME); bool duplicate_javabase = false; { MutexLocker m1(Module_lock, THREAD);
*** 225,235 **** PackageEntry* pkg; for (int x = 0; x < pkg_list->length(); x++) { // Some of java.base's packages were added early in bootstrapping, ignore duplicates. if (package_table->lookup_only(pkg_list->at(x)) == NULL) { pkg = package_table->locked_create_entry_or_null(pkg_list->at(x), ModuleEntryTable::javabase_moduleEntry()); ! assert(pkg != NULL, "Unable to create a java.base package entry"); } // Unable to have a GrowableArray of TempNewSymbol. Must decrement the refcount of // the Symbol* that was created above for each package. The refcount was incremented // by SymbolTable::new_symbol and as well by the PackageEntry creation. pkg_list->at(x)->decrement_refcount(); --- 225,235 ---- PackageEntry* pkg; for (int x = 0; x < pkg_list->length(); x++) { // Some of java.base's packages were added early in bootstrapping, ignore duplicates. if (package_table->lookup_only(pkg_list->at(x)) == NULL) { pkg = package_table->locked_create_entry_or_null(pkg_list->at(x), ModuleEntryTable::javabase_moduleEntry()); ! assert(pkg != NULL, "Unable to create a " JAVA_BASE_NAME " package entry"); } // Unable to have a GrowableArray of TempNewSymbol. Must decrement the refcount of // the Symbol* that was created above for each package. The refcount was incremented // by SymbolTable::new_symbol and as well by the PackageEntry creation. pkg_list->at(x)->decrement_refcount();
*** 239,266 **** ModuleEntryTable::finalize_javabase(module_handle, version_symbol, location_symbol); } } if (duplicate_javabase) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! "Module java.base is already defined"); } // Only the thread that actually defined the base module will get here, // so no locking is needed. // Patch any previously loaded class's module field with java.base's java.lang.reflect.Module. ModuleEntryTable::patch_javabase_entries(module_handle); ! log_debug(modules)("define_javabase_module(): Definition of module: java.base," ! " version: %s, location: %s, package #: %d", module_version != NULL ? module_version : "NULL", module_location != NULL ? module_location : "NULL", pkg_list->length()); // packages defined to java.base for (int x = 0; x < pkg_list->length(); x++) { ! log_trace(modules)("define_javabase_module(): creation of package %s for module java.base", (pkg_list->at(x))->as_C_string()); } } void Modules::define_module(jobject module, jstring version, --- 239,266 ---- ModuleEntryTable::finalize_javabase(module_handle, version_symbol, location_symbol); } } if (duplicate_javabase) { THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), ! "Module " JAVA_BASE_NAME " is already defined"); } // Only the thread that actually defined the base module will get here, // so no locking is needed. // Patch any previously loaded class's module field with java.base's java.lang.reflect.Module. ModuleEntryTable::patch_javabase_entries(module_handle); ! log_debug(modules)("define_javabase_module(): Definition of module: " ! JAVA_BASE_NAME ", version: %s, location: %s, package #: %d", module_version != NULL ? module_version : "NULL", module_location != NULL ? module_location : "NULL", pkg_list->length()); // packages defined to java.base for (int x = 0; x < pkg_list->length(); x++) { ! log_trace(modules)("define_javabase_module(): creation of package %s for module " JAVA_BASE_NAME, (pkg_list->at(x))->as_C_string()); } } void Modules::define_module(jobject module, jstring version,
*** 281,291 **** THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Module name cannot be null"); } // Special handling of java.base definition ! if (strcmp(module_name, "java.base") == 0) { define_javabase_module(module, version, location, packages, CHECK); return; } const char* module_version = get_module_version(version); --- 281,291 ---- THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "Module name cannot be null"); } // Special handling of java.base definition ! if (strcmp(module_name, JAVA_BASE_NAME) == 0) { define_javabase_module(module, version, location, packages, CHECK); return; } const char* module_version = get_module_version(version);
*** 711,721 **** package_entry->is_qexported_to(to_module_entry)); } // This method is called by JFR and JNI. jobject Modules::get_module(jclass clazz, TRAPS) { ! assert(ModuleEntryTable::javabase_defined(), "Attempt to call get_module before java.base is defined"); if (clazz == NULL) { THROW_MSG_(vmSymbols::java_lang_NullPointerException(), "class is null", JNI_FALSE); } --- 711,722 ---- package_entry->is_qexported_to(to_module_entry)); } // This method is called by JFR and JNI. jobject Modules::get_module(jclass clazz, TRAPS) { ! assert(ModuleEntryTable::javabase_defined(), ! "Attempt to call get_module before " JAVA_BASE_NAME " is defined"); if (clazz == NULL) { THROW_MSG_(vmSymbols::java_lang_NullPointerException(), "class is null", JNI_FALSE); }
*** 757,767 **** jobject Modules::get_module_by_package_name(jobject loader, jstring package, TRAPS) { ResourceMark rm(THREAD); assert(ModuleEntryTable::javabase_defined(), ! "Attempt to call get_module_from_pkg before java.base is defined"); if (NULL == package) { THROW_MSG_(vmSymbols::java_lang_NullPointerException(), "package is null", JNI_FALSE); } --- 758,768 ---- jobject Modules::get_module_by_package_name(jobject loader, jstring package, TRAPS) { ResourceMark rm(THREAD); assert(ModuleEntryTable::javabase_defined(), ! "Attempt to call get_module_from_pkg before " JAVA_BASE_NAME " is defined"); if (NULL == package) { THROW_MSG_(vmSymbols::java_lang_NullPointerException(), "package is null", JNI_FALSE); }
*** 794,804 **** } jobject Modules::get_named_module(Handle h_loader, const char* package_str, TRAPS) { assert(ModuleEntryTable::javabase_defined(), ! "Attempt to call get_named_module before java.base is defined"); assert(h_loader.is_null() || java_lang_ClassLoader::is_subclass(h_loader->klass()), "Class loader is not a subclass of java.lang.ClassLoader"); assert(package_str != NULL, "the package_str should not be NULL"); if (strlen(package_str) == 0) { --- 795,805 ---- } jobject Modules::get_named_module(Handle h_loader, const char* package_str, TRAPS) { assert(ModuleEntryTable::javabase_defined(), ! "Attempt to call get_named_module before " JAVA_BASE_NAME " is defined"); assert(h_loader.is_null() || java_lang_ClassLoader::is_subclass(h_loader->klass()), "Class loader is not a subclass of java.lang.ClassLoader"); assert(package_str != NULL, "the package_str should not be NULL"); if (strlen(package_str) == 0) {
< prev index next >