From 668227ee6c4a4a871ce94e30e154ac614b58180d Mon Sep 17 00:00:00 2001 From: Pierre Maurice Schwang Date: Sat, 5 Mar 2022 18:19:58 +0100 Subject: [PATCH] Update Upstream (#1643) 44863cf Don't access PluginClassLoader directly (#2045) --- .../com/sk89q/bukkit/util/ClassSourceValidator.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java index 2ef7fbabb..aa04c4f00 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java @@ -25,7 +25,6 @@ import com.sk89q.worldedit.internal.util.LogManagerCompat; import org.apache.logging.log4j.Logger; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.PluginClassLoader; import javax.annotation.Nullable; import java.lang.reflect.InvocationTargetException; @@ -45,14 +44,17 @@ public class ClassSourceValidator { private static final String SEPARATOR_LINE = Strings.repeat("*", 46); private static final Method loadClass; + private static Class pluginClassLoaderClass; static { Method tmp; try { - tmp = PluginClassLoader.class.getDeclaredMethod("loadClass0", + pluginClassLoaderClass = Class.forName("org.bukkit.plugin.java.PluginClassLoader", false, + Bukkit.class.getClassLoader()); + tmp = pluginClassLoaderClass.getDeclaredMethod("loadClass0", String.class, boolean.class, boolean.class, boolean.class); tmp.setAccessible(true); - } catch (NoSuchMethodException e) { + } catch (NoSuchMethodException | ClassNotFoundException e) { tmp = null; } loadClass = tmp; @@ -96,7 +98,7 @@ public class ClassSourceValidator { continue; } ClassLoader targetLoader = target.getClass().getClassLoader(); - if (!(targetLoader instanceof PluginClassLoader)) { + if (!(pluginClassLoaderClass.isAssignableFrom(targetLoader.getClass()))) { continue; } for (Class testClass : classes) {