Skip to content

Instantly share code, notes, and snippets.

@rz7d
Created April 13, 2019 16:33
Show Gist options
  • Save rz7d/f0cb2b7104b0174b0915c68ca75ca4be to your computer and use it in GitHub Desktop.
Save rz7d/f0cb2b7104b0174b0915c68ca75ca4be to your computer and use it in GitHub Desktop.
# HG changeset patch
# User azure <rz7@outlook.jp>
# Date 1555065807 -3600
# Fri Apr 12 11:43:27 2019 +0100
# Node ID bcf8f4f38fced14272d9984707427199b4c1981c
# Parent b67884871b5fff79c5ef3eb8ac74dd48d71ea9b1
Modifications for Minecraft
diff --git a/src/java.base/share/classes/java/net/URLClassLoader.java b/src/java.base/share/classes/java/net/URLClassLoader.java
--- a/src/java.base/share/classes/java/net/URLClassLoader.java
+++ b/src/java.base/share/classes/java/net/URLClassLoader.java
@@ -82,7 +82,10 @@
*/
public class URLClassLoader extends SecureClassLoader implements Closeable {
/* The search path for classes and resources */
- private final URLClassPath ucp;
+ /**
+ * Instance of URLClassPath
+ */
+ public final URLClassPath ucp;
/* The context to be used when loading classes and resources */
private final AccessControlContext acc;
@@ -123,6 +126,18 @@
}
/**
+ * for MoltenVM
+ * @param ucp class path
+ * @param name name
+ * @param parent parent
+ */
+ protected URLClassLoader(URLClassPath ucp, String name, ClassLoader parent) {
+ super(name, parent);
+ this.acc = AccessController.getContext();
+ this.ucp = ucp;
+ }
+
+ /**
* Constructs a new URLClassLoader for the specified URLs using the
* default delegation parent {@code ClassLoader}. The URLs will
* be searched in the order specified for classes and resources after
diff --git a/src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java b/src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java
--- a/src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java
+++ b/src/java.base/share/classes/jdk/internal/loader/BuiltinClassLoader.java
@@ -94,7 +94,7 @@
*/
public class BuiltinClassLoader
- extends SecureClassLoader
+ extends java.net.URLClassLoader
{
static {
if (!ClassLoader.registerAsParallelCapable())
@@ -105,7 +105,7 @@
private final BuiltinClassLoader parent;
// the URL class path, or null if there is no class path
- private final URLClassPath ucp;
+ // private final URLClassPath ucp;
/**
@@ -157,10 +157,10 @@
*/
BuiltinClassLoader(String name, BuiltinClassLoader parent, URLClassPath ucp) {
// ensure getParent() returns null when the parent is the boot loader
- super(name, parent == null || parent == ClassLoaders.bootLoader() ? null : parent);
+ super(ucp, name, parent == null || parent == ClassLoaders.bootLoader() ? null : parent);
this.parent = parent;
- this.ucp = ucp;
+ // this.ucp = ucp;
this.nameToModule = new ConcurrentHashMap<>();
this.moduleToReader = new ConcurrentHashMap<>();
@@ -866,7 +866,7 @@
* existing package either in this class loader or one of its ancestors
* @throws SecurityException if the package name is untrusted in the manifest
*/
- private Package definePackage(String pn, Manifest man, URL url) {
+ protected Package definePackage(String pn, Manifest man, URL url) {
String specTitle = null;
String specVersion = null;
String specVendor = null;
diff --git a/src/java.base/share/classes/module-info.java b/src/java.base/share/classes/module-info.java
--- a/src/java.base/share/classes/module-info.java
+++ b/src/java.base/share/classes/module-info.java
@@ -151,9 +151,7 @@
jdk.jlink;
exports jdk.internal.jimage.decompressor to
jdk.jlink;
- exports jdk.internal.loader to
- java.instrument,
- java.logging;
+ exports jdk.internal.loader;
exports jdk.internal.jmod to
jdk.compiler,
jdk.jlink;
@@ -197,12 +195,7 @@
jdk.scripting.nashorn.shell,
jdk.unsupported,
jdk.internal.vm.ci;
- exports jdk.internal.module to
- java.instrument,
- java.management.rmi,
- jdk.jartool,
- jdk.jfr,
- jdk.jlink;
+ exports jdk.internal.module;
exports jdk.internal.perf to
java.management,
jdk.management.agent,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment