diff --git a/SpigotCore_Main/src/de/steamwar/core/Core.java b/SpigotCore_Main/src/de/steamwar/core/Core.java index 2fd4296..5a68722 100644 --- a/SpigotCore_Main/src/de/steamwar/core/Core.java +++ b/SpigotCore_Main/src/de/steamwar/core/Core.java @@ -143,7 +143,7 @@ public class Core extends JavaPlugin{ public void onDisable() { TinyProtocol.instance.close(); errorHandler.unregister(); - if(!standalone) { + if(!standalone && crashDetector.onMainThread()) { Statement.close(); } } diff --git a/SpigotCore_Main/src/de/steamwar/core/CrashDetector.java b/SpigotCore_Main/src/de/steamwar/core/CrashDetector.java index 1320c2c..8d50dd3 100644 --- a/SpigotCore_Main/src/de/steamwar/core/CrashDetector.java +++ b/SpigotCore_Main/src/de/steamwar/core/CrashDetector.java @@ -20,6 +20,7 @@ package de.steamwar.core; import de.steamwar.sql.SWException; +import de.steamwar.sql.Statement; import org.bukkit.Bukkit; import java.util.Arrays; @@ -47,6 +48,10 @@ public class CrashDetector { watchdog.interrupt(); } + public boolean onMainThread() { + return Thread.currentThread() == mainThread; + } + private void run() { while (run) { long curTime = System.currentTimeMillis(); @@ -58,6 +63,7 @@ public class CrashDetector { if(Core.getInstance().isEnabled()) { Core.getInstance().onDisable(); } + Statement.close(); //System.exit(0); Does freeze, potential freezing issues: ConsoleRestoreHook, ApplicationShutdownHooks or DeleteOnExitHook Runtime.getRuntime().halt(0); }