diff --git a/src/me/neatmonster/spacebukkit/PanelListener.java b/src/me/neatmonster/spacebukkit/PanelListener.java index 465bd73..b034674 100644 --- a/src/me/neatmonster/spacebukkit/PanelListener.java +++ b/src/me/neatmonster/spacebukkit/PanelListener.java @@ -179,7 +179,12 @@ public void run() { if (string.contains("&key=" + Utilities.crypt(method + SpaceBukkit.getInstance().salt))) { final Object result = interpret(string); if (result != null) - output.println(Utilities.addHeader(JSONValue.toJSONString(result))); + try { + output.println(Utilities.addHeader(JSONValue.toJSONString(result))); + } catch (OutOfMemoryError e) { + System.gc(); + output.println(Utilities.addHeader(null)); + } else output.println(Utilities.addHeader(null)); } else @@ -190,7 +195,12 @@ else if (string.startsWith("multiple") && string.contains("?method=") && string. if (string.contains("&key=" + Utilities.crypt(method + SpaceBukkit.getInstance().salt))) { final Object result = interpretm(string); if (result != null) - output.println(Utilities.addHeader(JSONValue.toJSONString(result))); + try { + output.println(Utilities.addHeader(JSONValue.toJSONString(result))); + } catch (OutOfMemoryError e) { + System.gc(); + output.println(Utilities.addHeader(null)); + } else output.println(Utilities.addHeader(null)); } else diff --git a/src/me/neatmonster/spacebukkit/SpaceBukkit.java b/src/me/neatmonster/spacebukkit/SpaceBukkit.java index 182babc..64ec0e7 100644 --- a/src/me/neatmonster/spacebukkit/SpaceBukkit.java +++ b/src/me/neatmonster/spacebukkit/SpaceBukkit.java @@ -22,6 +22,8 @@ import java.io.File; import com.drdanick.rtoolkit.system.EventDispatchWorker; +import com.drdanick.rtoolkit.system.SingleWorkerPool; + import mcstats.Metrics; import me.neatmonster.spacebukkit.actions.PlayerActions; import me.neatmonster.spacebukkit.actions.ServerActions; @@ -139,7 +141,7 @@ public void onEnable() { } if(edt == null) - edt = new EventDispatcher(); + edt = new EventDispatcher(new SingleWorkerPool()); if(toolkitEventWorker == null) { toolkitEventWorker = new EventDispatchWorker();