Skip to content

Commit ad8d7d7

Browse files
committed
Allow ModuleClassLoader to delegate class-loading to parent for unit testing without class-loader isolation.
1 parent fd3fa25 commit ad8d7d7

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/main/java/cpw/mods/cl/ModuleClassLoader.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cpw.mods.cl;
22

33
import cpw.mods.util.LambdaExceptionUtils;
4+
import org.jetbrains.annotations.Nullable;
45

56
import java.io.IOException;
67
import java.io.InputStream;
@@ -64,10 +65,15 @@ private static void bindToLayer(ModuleClassLoader classLoader, ModuleLayer layer
6465
private final Map<String, JarModuleFinder.JarModuleReference> resolvedRoots;
6566
private final Map<String, ResolvedModule> packageLookup;
6667
private final Map<String, ClassLoader> parentLoaders;
67-
private ClassLoader fallbackClassLoader = ClassLoader.getPlatformClassLoader();
68+
private ClassLoader fallbackClassLoader;
6869

6970
public ModuleClassLoader(final String name, final Configuration configuration, final List<ModuleLayer> parentLayers) {
70-
super(name, null);
71+
this(name, configuration, parentLayers, null);
72+
}
73+
74+
public ModuleClassLoader(final String name, final Configuration configuration, final List<ModuleLayer> parentLayers, @Nullable ClassLoader parentLoader) {
75+
super(name, parentLoader);
76+
this.fallbackClassLoader = Objects.requireNonNullElse(parentLoader, ClassLoader.getPlatformClassLoader());
7177
this.configuration = configuration;
7278
this.packageLookup = new HashMap<>();
7379
this.resolvedRoots = configuration.modules().stream()

0 commit comments

Comments
 (0)