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(); }