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