Skip to content

Commit 1329216

Browse files
author
Mandy Chung
committedMar 19, 2024
8328261: public lookup fails with IllegalAccessException when used while module system is being initialized
Reviewed-by: rriggs, alanb
1 parent 3b305d5 commit 1329216

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed
 

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

+4-8
Original file line numberDiff line numberDiff line change
@@ -201,9 +201,10 @@ public static boolean isClassAccessible(Class<?> refc,
201201
Module lookupModule = lookupClass.getModule();
202202
Module refModule = refc.getModule();
203203

204-
// early VM startup case, java.base not defined
205-
if (lookupModule == null) {
206-
assert refModule == null;
204+
// early VM startup case, java.base not defined or
205+
// module system is not fully initialized and exports are not set up
206+
if (lookupModule == null || !jdk.internal.misc.VM.isModuleSystemInited()) {
207+
assert lookupModule == refModule;
207208
return true;
208209
}
209210

@@ -230,11 +231,6 @@ public static boolean isClassAccessible(Class<?> refc,
230231
if (isModuleAccessible(refc, lookupModule, prevLookupModule))
231232
return true;
232233

233-
// not exported but allow access during VM initialization
234-
// because java.base does not have its exports setup
235-
if (!jdk.internal.misc.VM.isModuleSystemInited())
236-
return true;
237-
238234
// public class not accessible to lookupClass
239235
return false;
240236
}

0 commit comments

Comments
 (0)
Please sign in to comment.