Fix plugin CNFE with jdk classes
This commit is contained in:
parent
81e7decef0
commit
bd910af6cd
@ -318,14 +318,18 @@ public class ArclightReflectionHandler extends ClassLoader {
|
|||||||
className = name;
|
className = name;
|
||||||
}
|
}
|
||||||
className = remapper.mapType(className);
|
className = remapper.mapType(className);
|
||||||
if (className.startsWith("java/")) return null;
|
if (className.startsWith("java/") || className.startsWith("jdk/") || className.startsWith("javax/")) {
|
||||||
else if (cl != null) return "/" + className + ".class";
|
return null;
|
||||||
|
} else if (cl != null) return "/" + className + ".class";
|
||||||
else return className + ".class";
|
else return className + ".class";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static URL redirectClassGetResource(Class<?> cl, String name) throws MalformedURLException {
|
public static URL redirectClassGetResource(Class<?> cl, String name) throws MalformedURLException {
|
||||||
String mappedResource = findMappedResource(cl, name);
|
String mappedResource = findMappedResource(cl, name);
|
||||||
if (mappedResource == null) {
|
if (mappedResource == null) {
|
||||||
|
if (name.startsWith("/java/") || name.startsWith("/jdk/") || name.startsWith("/javax/")) {
|
||||||
|
return ClassLoader.getPlatformClassLoader().getResource(name);
|
||||||
|
}
|
||||||
return cl.getResource(name);
|
return cl.getResource(name);
|
||||||
} else {
|
} else {
|
||||||
URL resource = cl.getResource(mappedResource);
|
URL resource = cl.getResource(mappedResource);
|
||||||
@ -336,6 +340,9 @@ public class ArclightReflectionHandler extends ClassLoader {
|
|||||||
public static InputStream redirectClassGetResourceAsStream(Class<?> cl, String name) throws IOException {
|
public static InputStream redirectClassGetResourceAsStream(Class<?> cl, String name) throws IOException {
|
||||||
String mappedResource = findMappedResource(cl, name);
|
String mappedResource = findMappedResource(cl, name);
|
||||||
if (mappedResource == null) {
|
if (mappedResource == null) {
|
||||||
|
if (name.startsWith("/java/") || name.startsWith("/jdk/") || name.startsWith("/javax/")) {
|
||||||
|
return ClassLoader.getPlatformClassLoader().getResourceAsStream(name);
|
||||||
|
}
|
||||||
return cl.getResourceAsStream(name);
|
return cl.getResourceAsStream(name);
|
||||||
} else {
|
} else {
|
||||||
URL resource = cl.getResource(mappedResource);
|
URL resource = cl.getResource(mappedResource);
|
||||||
@ -347,6 +354,9 @@ public class ArclightReflectionHandler extends ClassLoader {
|
|||||||
public static URL redirectClassLoaderGetResource(ClassLoader loader, String name) throws MalformedURLException {
|
public static URL redirectClassLoaderGetResource(ClassLoader loader, String name) throws MalformedURLException {
|
||||||
String mappedResource = findMappedResource(null, name);
|
String mappedResource = findMappedResource(null, name);
|
||||||
if (mappedResource == null) {
|
if (mappedResource == null) {
|
||||||
|
if (name.startsWith("java/") || name.startsWith("jdk/") || name.startsWith("javax/")) {
|
||||||
|
return ClassLoader.getPlatformClassLoader().getResource(name);
|
||||||
|
}
|
||||||
return loader.getResource(name);
|
return loader.getResource(name);
|
||||||
} else {
|
} else {
|
||||||
URL resource = loader.getResource(mappedResource);
|
URL resource = loader.getResource(mappedResource);
|
||||||
@ -357,6 +367,9 @@ public class ArclightReflectionHandler extends ClassLoader {
|
|||||||
public static Enumeration<URL> redirectClassLoaderGetResources(ClassLoader loader, String name) throws IOException {
|
public static Enumeration<URL> redirectClassLoaderGetResources(ClassLoader loader, String name) throws IOException {
|
||||||
String mappedResource = findMappedResource(null, name);
|
String mappedResource = findMappedResource(null, name);
|
||||||
if (mappedResource == null) {
|
if (mappedResource == null) {
|
||||||
|
if (name.startsWith("java/") || name.startsWith("jdk/") || name.startsWith("javax/")) {
|
||||||
|
return ClassLoader.getPlatformClassLoader().getResources(name);
|
||||||
|
}
|
||||||
return loader.getResources(name);
|
return loader.getResources(name);
|
||||||
} else {
|
} else {
|
||||||
Enumeration<URL> resources = loader.getResources(mappedResource);
|
Enumeration<URL> resources = loader.getResources(mappedResource);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user