< prev index next >

src/java.base/share/classes/sun/invoke/util/VerifyAccess.java

Print this page
*** 199,13 ***
          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) {
--- 199,14 ---
          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) {

*** 225,16 ***
              // 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;
          }
--- 226,12 ---
              // 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 >