Skip to content

Commit b1e5caa

Browse files
committed
Remove package-private access to NativeImageClassLoaderSupport.classPathClassLoader
1 parent a3e5c0e commit b1e5caa

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ClassLoaderSupportImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,35 +58,35 @@
5858
import com.oracle.svm.core.util.ClasspathUtils;
5959
import com.oracle.svm.core.util.UserError;
6060
import com.oracle.svm.core.util.VMError;
61+
import com.oracle.svm.hosted.NativeImageClassLoaderSupport.ClassPathClassLoader;
6162
import com.oracle.svm.util.ModuleSupport;
6263

6364
class ClassLoaderSupportImpl extends ClassLoaderSupport {
6465

6566
private final NativeImageClassLoaderSupport classLoaderSupport;
67+
6668
private final ClassLoader imageClassLoader;
69+
private final ClassPathClassLoader classPathClassLoader;
6770

6871
private final Map<String, Set<Module>> packageToModules;
6972

7073
ClassLoaderSupportImpl(NativeImageClassLoaderSupport classLoaderSupport) {
7174
this.classLoaderSupport = classLoaderSupport;
72-
this.imageClassLoader = classLoaderSupport.getClassLoader();
75+
76+
imageClassLoader = classLoaderSupport.getClassLoader();
77+
ClassLoader parent = imageClassLoader.getParent();
78+
classPathClassLoader = parent instanceof ClassPathClassLoader ? (ClassPathClassLoader) parent : null;
79+
7380
packageToModules = new HashMap<>();
7481
buildPackageToModulesMap(classLoaderSupport);
7582
}
7683

7784
@Override
7885
protected boolean isNativeImageClassLoaderImpl(ClassLoader loader) {
7986
if (loader == imageClassLoader) {
80-
/* Trivial case */
8187
return true;
8288
}
83-
if (loader == classLoaderSupport.classPathClassLoader) {
84-
/*
85-
* If imageClassLoader is a module classloader (building image with non-empty
86-
* NativeImageClassLoaderSupport.imagemp), the passed loader could also be our
87-
* classLoaderSupport.classPathClassLoader (building image with non-empty
88-
* NativeImageClassLoaderSupport.imagecp).
89-
*/
89+
if (classPathClassLoader != null && loader == classPathClassLoader) {
9090
return true;
9191
}
9292
if (loader instanceof NativeImageSystemClassLoader) {

substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/NativeImageClassLoaderSupport.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ public class NativeImageClassLoaderSupport {
9595
private final EconomicMap<URI, EconomicSet<String>> packages;
9696
private final EconomicSet<String> emptySet;
9797

98-
final URLClassLoader classPathClassLoader;
99-
private final ClassLoader modulePathClassLoader;
98+
private final ClassPathClassLoader classPathClassLoader;
99+
private final ClassLoader classLoader;
100100

101101
public final ModuleFinder upgradeAndSystemModuleFinder;
102102
public final ModuleLayer moduleLayerForImageBuild;
@@ -146,7 +146,7 @@ protected NativeImageClassLoaderSupport(ClassLoader defaultSystemClassLoader, St
146146
adjustBootLayerQualifiedExports(moduleLayer);
147147
moduleLayerForImageBuild = moduleLayer;
148148

149-
modulePathClassLoader = getSingleClassloader(moduleLayer);
149+
classLoader = getSingleClassloader(moduleLayer);
150150

151151
modulepathModuleFinder = ModuleFinder.of(modulepath().toArray(Path[]::new));
152152
}
@@ -160,7 +160,7 @@ List<Path> applicationClassPath() {
160160
}
161161

162162
public ClassLoader getClassLoader() {
163-
return modulePathClassLoader;
163+
return classLoader;
164164
}
165165

166166
public void initAllClasses(ForkJoinPool executor, ImageClassLoader imageClassLoader) {
@@ -507,7 +507,7 @@ private static UserError.UserException userErrorAddExportsAndOpensAndReads(Optio
507507
Class<?> loadClassFromModule(Object module, String className) {
508508
assert module instanceof Module : "Argument `module` is not an instance of java.lang.Module";
509509
Module m = (Module) module;
510-
assert isModuleClassLoader(modulePathClassLoader, m.getClassLoader()) : "Argument `module` is java.lang.Module from unknown ClassLoader";
510+
assert isModuleClassLoader(classLoader, m.getClassLoader()) : "Argument `module` is java.lang.Module from unknown ClassLoader";
511511
return Class.forName(m, className);
512512
}
513513

0 commit comments

Comments
 (0)