+/*******************************************************************************
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ *******************************************************************************/
package jalview.javascript;\r
\r
import java.net.URL;\r
\r
public class JSFunctionExec implements Runnable\r
{\r
- JalviewLite jvlite;\r
+ public JalviewLite jvlite;\r
\r
public JSFunctionExec(JalviewLite applet)\r
{\r
jsExecQueue = jvlite.getJsExecQueue();\r
jvlite.setExecutor(this);\r
}\r
-\r
+ public void finalize() {\r
+ jvlite=null;\r
+ executor=null;\r
+ if (jsExecQueue!=null)\r
+ {\r
+ jsExecQueue.clear();\r
+ }\r
+ jsExecQueue=null;\r
+ }\r
private Vector jsExecQueue;\r
\r
private Thread executor = null;\r
{\r
if (jsExecQueue != null)\r
{\r
+ Vector<JSFunctionExec> q=null;\r
synchronized (jsExecQueue)\r
{\r
- Vector q = jsExecQueue;\r
- q.removeAllElements();\r
+ q = jsExecQueue;\r
jsExecQueue = null;\r
+ }\r
+ if (q!=null ) {\r
+ for (JSFunctionExec jx : q)\r
+ {\r
+ jx.jvlite=null;\r
+ \r
+ }\r
+ q.removeAllElements();\r
synchronized (q)\r
{\r
q.notifyAll();\r
}\r
}\r
- executor = null;\r
}\r
+ jvlite=null;\r
+ executor = null;\r
}\r
\r
public void run()\r