< prev index next > src/java.base/share/classes/sun/invoke/util/VerifyAccess.java
Print this page
if (isPublic(mods)) {
Module lookupModule = lookupClass.getModule();
Module refModule = refc.getModule();
- // early VM startup case, java.base not defined
- if (lookupModule == null) {
- assert refModule == null;
+ // early VM startup case, java.base not defined or
+ // module system is not fully initialized and exports are not set up
+ if (lookupModule == null || !jdk.internal.misc.VM.isModuleSystemInited()) {
+ assert lookupModule == refModule;
return true;
}
// allow access to public types in all unconditionally exported packages
if ((allowedModes & UNCONDITIONAL_ALLOWED) != 0) {
// 1. refc is in different module from lookupModule, or
// 2. refc is in lookupModule and a different module from prevLookupModule
Module prevLookupModule = prevLookupClass != null ? prevLookupClass.getModule()
: null;
assert refModule != lookupModule || refModule != prevLookupModule;
- if (isModuleAccessible(refc, lookupModule, prevLookupModule))
- return true;
- // not exported but allow access during VM initialization
- // because java.base does not have its exports setup
- if (!jdk.internal.misc.VM.isModuleSystemInited())
+ if (isModuleAccessible(refc, lookupModule, prevLookupModule))
return true;
// public class not accessible to lookupClass
return false;
}
< prev index next >