JAL-2608 tidy up OverviewPanel when closed
[jalview.git] / src / jalview / appletgui / OverviewPanel.java
index b3c4a37..ccdfee1 100755 (executable)
@@ -160,6 +160,14 @@ public class OverviewPanel extends Panel implements Runnable,
    */
   public void updateOverviewImage()
   {
+    if (oviewCanvas == null)
+    {
+      /*
+       * panel has been disposed
+       */
+      return;
+    }
+
     if ((getSize().width > 0) && (getSize().height > 0))
     {
       od.setWidth(getSize().width);
@@ -257,4 +265,21 @@ public class OverviewPanel extends Panel implements Runnable,
     oviewCanvas.resetOviewDims(od);
     updateOverviewImage();
   }
+
+  /**
+   * Removes this object as a property change listener, and nulls references
+   */
+  protected void dispose()
+  {
+    try
+    {
+      av.getRanges().removePropertyChangeListener(this);
+    } finally
+    {
+      av = null;
+      oviewCanvas = null;
+      ap = null;
+      od = null;
+    }
+  }
 }