< 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;
return true;
}
// allow access to public types in all unconditionally exported packages
if ((allowedModes & UNCONDITIONAL_ALLOWED) != 0) {
if (isPublic(mods)) {
Module lookupModule = lookupClass.getModule();
Module refModule = refc.getModule();
! // 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())
return true;
// public class not accessible to lookupClass
return false;
}
// 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;
// public class not accessible to lookupClass
return false;
}
< prev index next >