From 47163194716b61472d864bd97d53f0508156924b Mon Sep 17 00:00:00 2001 From: kfeuz Date: Thu, 5 Feb 2015 00:24:08 -0700 Subject: [PATCH] Prevent memory leak by unregistering parent dispose method --- java/libraries/net/src/processing/net/Client.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/libraries/net/src/processing/net/Client.java b/java/libraries/net/src/processing/net/Client.java index fb8fa95ee..298d7c490 100644 --- a/java/libraries/net/src/processing/net/Client.java +++ b/java/libraries/net/src/processing/net/Client.java @@ -61,6 +61,7 @@ public class Client implements Runnable { int bufferIndex; int bufferLast; + boolean isDisposeRegistered = false; /** * @param parent typically use "this" @@ -81,6 +82,7 @@ public class Client implements Runnable { thread.start(); parent.registerMethod("dispose", this); + isDisposeRegistered = true; // reflection to check whether host sketch has a call for // public void clientEvent(processing.net.Client) @@ -158,6 +160,9 @@ public class Client implements Runnable { disconnectEventMethod = null; } } + if(isDisposeRegistered){ + parent.unregisterMethod("dispose", this); + } dispose(); }