From 132921683bc9860ce2ba89729dcd989b10b89aa2 Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Tue, 19 Mar 2024 15:55:25 +0000 Subject: [PATCH] 8328261: public lookup fails with IllegalAccessException when used while module system is being initialized Reviewed-by: rriggs, alanb --- .../share/classes/sun/invoke/util/VerifyAccess.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java b/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java index da896b93e1c..28373ad6bda 100644 --- a/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java +++ b/src/java.base/share/classes/sun/invoke/util/VerifyAccess.java @@ -201,9 +201,10 @@ public class VerifyAccess { 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; } @@ -230,11 +231,6 @@ public class VerifyAccess { 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; }