Merge branch 'bug/JAL-2864nullOverviewCanvas' into develop
authorJim Procter <jprocter@issues.jalview.org>
Mon, 17 Dec 2018 17:30:44 +0000 (17:30 +0000)
committerJim Procter <jprocter@issues.jalview.org>
Mon, 17 Dec 2018 17:30:44 +0000 (17:30 +0000)
1  2 
src/jalview/appletgui/OverviewCanvas.java
src/jalview/appletgui/OverviewPanel.java
src/jalview/gui/OverviewCanvas.java

@@@ -128,9 -128,11 +128,9 @@@ public class OverviewCanvas extends Com
      {
        mg.translate(0, od.getSequencesHeight());
        or.drawGraph(mg, av.getAlignmentConservationAnnotation(),
 -              av.getCharWidth(), od.getGraphHeight(),
 -              od.getColumns(av.getAlignment()));
 +              od.getGraphHeight(), od.getColumns(av.getAlignment()));
        mg.translate(0, -od.getSequencesHeight());
      }
 -    System.gc();
  
      if (restart)
      {
      }
    }
  
+   /**
+    * Nulls references to protect against potential memory leaks
+    */
+   void dispose()
+   {
+     od = null;
+   }
  }
@@@ -155,10 -155,6 +155,10 @@@ public class OverviewPanel extends Pane
        if (!od.isPositionInBox(evt.getX(), evt.getY()))
        { 
        draggingBox = false;
 +
 +        // display drag cursor at mouse position
 +        setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
 +
          od.updateViewportFromMouse(evt.getX(), evt.getY(),
                  av.getAlignment().getHiddenSequences(),
                  av.getAlignment().getHiddenColumns());
    @Override
    public void mouseReleased(MouseEvent evt)
    {
 +    draggingBox = false;
    }
  
    @Override
      } finally
      {
        av = null;
+       if (oviewCanvas != null)
+       {
+         oviewCanvas.dispose();
+       }
        oviewCanvas = null;
        ap = null;
        od = null;
@@@ -157,9 -157,11 +157,9 @@@ public class OverviewCanvas extends JCo
      {
        mg.translate(0, od.getSequencesHeight());
        or.drawGraph(mg, av.getAlignmentConservationAnnotation(),
 -              av.getCharWidth(), od.getGraphHeight(),
 -              od.getColumns(av.getAlignment()));
 +              od.getGraphHeight(), od.getColumns(av.getAlignment()));
        mg.translate(0, -od.getSequencesHeight());
      }
 -    System.gc();
  
      or.removePropertyChangeListener(progressPanel);
      or = null;
    @Override
    public void paintComponent(Graphics g)
    {
 -    // super.paintComponent(g);
 +    super.paintComponent(g);
  
      if (restart)
      {
    public void dispose()
    {
      dispose = true;
+     od = null;
      synchronized (this)
      {
        restart = true;