Skip to content

Commit

Permalink
Catch setEnabled to ensure classloader is properly unloaded (#10020)
Browse files Browse the repository at this point in the history
  • Loading branch information
Owen1212055 authored Dec 11, 2023
1 parent dd16335 commit 28abbaa
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions patches/server/0013-Paper-Plugins.patch
Original file line number Diff line number Diff line change
Expand Up @@ -3767,10 +3767,10 @@ index 0000000000000000000000000000000000000000..92a69677f21b2c1c035119d8e5a6af63
+}
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..08b1aab5d37a56dc42542ce15ba1f7ccd1b08400
index 0000000000000000000000000000000000000000..846bdcccf1031e41c4da29da885aa4d438507631
--- /dev/null
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
@@ -0,0 +1,302 @@
@@ -0,0 +1,305 @@
+package io.papermc.paper.plugin.manager;
+
+import com.google.common.base.Preconditions;
Expand Down Expand Up @@ -3994,8 +3994,11 @@ index 0000000000000000000000000000000000000000..08b1aab5d37a56dc42542ce15ba1f7cc
+ plugin.getLogger().info("Disabling %s".formatted(pluginName));
+
+ this.server.getPluginManager().callEvent(new PluginDisableEvent(plugin));
+
+ javaPlugin.setEnabled(false);
+ try {
+ javaPlugin.setEnabled(false);
+ } catch (Throwable ex) {
+ this.server.getLogger().log(Level.SEVERE, "Error occurred while disabling " + pluginName, ex);
+ }
+
+ ClassLoader classLoader = plugin.getClass().getClassLoader();
+ if (classLoader instanceof ConfiguredPluginClassLoader configuredPluginClassLoader) {
Expand Down

0 comments on commit 28abbaa

Please sign in to comment.