< prev index next >

src/share/vm/classfile/systemDictionary.cpp

Print this page

        

*** 1220,1229 **** --- 1220,1231 ---- // - Class from -Xbootclasspath/a. The class has no defined PackageEntry, or must // be defined in an unnamed module. bool SystemDictionary::is_shared_class_visible(Symbol* class_name, instanceKlassHandle ik, Handle class_loader, TRAPS) { + assert(!ModuleEntryTable::javabase_moduleEntry()->is_patched(), + "Cannot use sharing if java.base is patched"); ResourceMark rm; int path_index = ik->shared_classpath_index(); SharedClassPathEntry* ent = (SharedClassPathEntry*)FileMapInfo::shared_classpath(path_index); if (!Universe::is_module_initialized()) {
*** 1247,1256 **** --- 1249,1264 ---- if (pkg_entry != NULL) { mod_entry = pkg_entry->module(); } } + // If the archived class is from a module that has been patched at runtime, + // the class cannot be loaded from the archive. + if (mod_entry != NULL && mod_entry->is_patched()) { + return false; + } + if (class_loader.is_null()) { assert(ent != NULL, "Shared class for NULL classloader must have valid SharedClassPathEntry"); // The NULL classloader can load archived class originated from the // "modules" jimage and the -Xbootclasspath/a. For class from the // "modules" jimage, the PackageEntry/ModuleEntry must be defined
< prev index next >