From 3345734efdcce8b3cddf08a8d0386fec64793c0b Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Thu, 28 Sep 2017 14:22:33 +1300 Subject: [PATCH] Fixed memory leak by forcing garbage collection --- src/main/java/seng302/App.java | 14 ++++++++++++++ .../java/seng302/gameServer/messages/Message.java | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index e71138f7..fdfc3ad4 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -13,6 +13,9 @@ import org.slf4j.LoggerFactory; import seng302.discoveryServer.DiscoveryServer; import seng302.visualiser.controllers.ViewManager; +import java.util.Timer; +import java.util.TimerTask; + public class App extends Application { private static Logger logger = LoggerFactory.getLogger(App.class); @@ -92,6 +95,17 @@ public class App extends Application { } public static void main(String[] args) throws Exception { + /* + * Do not trust Java to do garbage collection + */ + new Timer().schedule(new TimerTask() { + @Override + public void run() { + System.gc(); + } + }, 0, 1200); + + try { parseArgs(args); } catch (ParseException e) { diff --git a/src/main/java/seng302/gameServer/messages/Message.java b/src/main/java/seng302/gameServer/messages/Message.java index 691bb022..94645137 100644 --- a/src/main/java/seng302/gameServer/messages/Message.java +++ b/src/main/java/seng302/gameServer/messages/Message.java @@ -158,7 +158,13 @@ public abstract class Message { * @return The current buffer as a byte array */ public byte[] getBuffer(){ - return buffer.array(); + byte[] bytes = buffer.array(); + +// buffer.reset(); +// buffer.clear(); +// buffer = null; + + return bytes; } /**