From a308c24a59827d45d5aed9a554366fbd5562440b Mon Sep 17 00:00:00 2001 From: stevenh Date: Sun, 22 May 2011 22:18:05 +0100 Subject: [PATCH] Added check and catch for errors during cancelTasks and unregister of services during plugin disable --- .../org/bukkit/plugin/SimplePluginManager.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java index b450b208..17f2411c 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -271,9 +271,17 @@ public final class SimplePluginManager implements PluginManager { server.getLogger().log(Level.SEVERE, "Error occurred (in the plugin loader) while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?): " + ex.getMessage(), ex); } - // Forced disable - server.getScheduler().cancelTasks(plugin); - server.getServicesManager().unregisterAll(plugin); + try { + server.getScheduler().cancelTasks(plugin); + } catch (Throwable ex) { + server.getLogger().log(Level.SEVERE, "Error occurred (in the plugin loader) while cancelling tasks for " + plugin.getDescription().getFullName() + " (Is it up to date?): " + ex.getMessage(), ex); + } + + try { + server.getServicesManager().unregisterAll(plugin); + } catch (Throwable ex) { + server.getLogger().log(Level.SEVERE, "Error occurred (in the plugin loader) while unregistering services for " + plugin.getDescription().getFullName() + " (Is it up to date?): " + ex.getMessage(), ex); + } } }