X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fjavascript%2FJSFunctionExec.java;h=6f7fc4398cb9c73c7a0ed18028db06befa159b63;hb=5960ee8bfc53ed73be59d00dffc52bf4714e3b0e;hp=8eb0bd9f4ccd7e428cc96f9bbf38d748d0c04401;hpb=bee1b05e923ca592565d6c1161717321947dff7b;p=jalview.git diff --git a/src/jalview/javascript/JSFunctionExec.java b/src/jalview/javascript/JSFunctionExec.java index 8eb0bd9..6f7fc43 100644 --- a/src/jalview/javascript/JSFunctionExec.java +++ b/src/jalview/javascript/JSFunctionExec.java @@ -9,7 +9,7 @@ import jalview.bin.JalviewLite; public class JSFunctionExec implements Runnable { - JalviewLite jvlite; + public JalviewLite jvlite; public JSFunctionExec(JalviewLite applet) { @@ -18,7 +18,15 @@ public class JSFunctionExec implements Runnable jsExecQueue = jvlite.getJsExecQueue(); jvlite.setExecutor(this); } - + public void finalize() { + jvlite=null; + executor=null; + if (jsExecQueue!=null) + { + jsExecQueue.clear(); + } + jsExecQueue=null; + } private Vector jsExecQueue; private Thread executor = null; @@ -27,18 +35,27 @@ public class JSFunctionExec implements Runnable { if (jsExecQueue != null) { + Vector q=null; synchronized (jsExecQueue) { - Vector q = jsExecQueue; - q.removeAllElements(); + q = jsExecQueue; jsExecQueue = null; + } + if (q!=null ) { + for (JSFunctionExec jx : q) + { + jx.jvlite=null; + + } + q.removeAllElements(); synchronized (q) { q.notifyAll(); } } - executor = null; } + jvlite=null; + executor = null; } public void run()