From 8707a3a572bcd4168e2548d06b050b10d5dc5582 Mon Sep 17 00:00:00 2001 From: md_5 Date: Wed, 3 Jan 2018 15:43:47 +1100 Subject: Be more resilient to asynchronous package loads like URLClassLoader --- .../java/org/bukkit/plugin/java/PluginClassLoader.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java index 9fc6bd77..7e41e79a 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -104,10 +104,16 @@ final class PluginClassLoader extends URLClassLoader { if (dot != -1) { String pkgName = name.substring(0, dot); if (getPackage(pkgName) == null) { - if (manifest != null) { - definePackage(pkgName, manifest, url); - } else { - definePackage(pkgName, null, null, null, null, null, null, null); + try { + if (manifest != null) { + definePackage(pkgName, manifest, url); + } else { + definePackage(pkgName, null, null, null, null, null, null, null); + } + } catch (IllegalArgumentException ex) { + if (getPackage(pkgName) == null) { + throw new IllegalStateException("Cannot find package " + pkgName); + } } } } -- cgit v1.2.3