From 1a80507406dad56d62db0efd8b4cc72524667f7a Mon Sep 17 00:00:00 2001 From: Aikar <aikar@aikar.co> Date: Tue, 1 May 2018 21:36:55 -0400 Subject: [PATCH] Close Plugin Class Loaders on Disable This should close more memory leaks from /reload and disabling plugins, by closing the class loader and the jar file. --- ...lose-Plugin-Class-Loaders-on-Disable.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Spigot-API-Patches/Close-Plugin-Class-Loaders-on-Disable.patch diff --git a/Spigot-API-Patches/Close-Plugin-Class-Loaders-on-Disable.patch b/Spigot-API-Patches/Close-Plugin-Class-Loaders-on-Disable.patch new file mode 100644 index 0000000000..7b48b5eebf --- /dev/null +++ b/Spigot-API-Patches/Close-Plugin-Class-Loaders-on-Disable.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar <aikar@aikar.co> +Date: Tue, 1 May 2018 21:33:35 -0400 +Subject: [PATCH] Close Plugin Class Loaders on Disable + +This should close more memory leaks from /reload and disabling plugins, +by closing the class loader and the jar file. + +diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +index 40fd71dc..1ea695d5 100644 +--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java ++++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader { + for (String name : names) { + removeClass(name); + } ++ // Paper start - close Class Loader on disable ++ try { ++ loader.close(); ++ } catch (IOException e) { ++ server.getLogger().log(Level.WARNING, "Error closing the Plugin Class Loader for " + plugin.getDescription().getFullName()); ++ e.printStackTrace(); ++ } ++ // Paper end + } + } + } +-- \ No newline at end of file