Merge commit 'alpha/update_2_12_for_2_11_2_series_merge^2' into HEAD
[jalview.git] / src / jalview / gui / TreePanel.java
index d242892..3463346 100755 (executable)
@@ -20,6 +20,8 @@
  */
 package jalview.gui;
 
+import java.util.Locale;
+
 import jalview.analysis.AlignmentSorter;
 import jalview.analysis.AverageDistanceTree;
 import jalview.analysis.NJTree;
@@ -159,6 +161,7 @@ public class TreePanel extends GTreePanel
         {
           av.removePropertyChangeListener(listener);
         }
+        releaseReferences();
       }
     });
 
@@ -168,6 +171,17 @@ public class TreePanel extends GTreePanel
   }
 
   /**
+   * Ensure any potentially large object references are nulled
+   */
+  public void releaseReferences()
+  {
+    this.tree = null;
+    this.treeCanvas.tree = null;
+    this.treeCanvas.nodeHash = null;
+    this.treeCanvas.nameHash = null;
+  }
+
+  /**
    * @return
    */
   protected PropertyChangeListener addAlignmentListener()
@@ -684,7 +698,7 @@ public class TreePanel extends GTreePanel
     String tree = MessageManager.getString("label.tree");
     ImageExporter exporter = new ImageExporter(writer, null, imageFormat,
             tree);
-    exporter.doExport(null, this, width, height, tree.toLowerCase());
+    exporter.doExport(null, this, width, height, tree.toLowerCase(Locale.ROOT));
   }
 
   /**
@@ -714,7 +728,7 @@ public class TreePanel extends GTreePanel
             // search dbrefs, features and annotation
             List<DBRefEntry> refs = jalview.util.DBRefUtils
                     .selectRefs(sq.getDBRefs(), new String[]
-                    { labelClass.toUpperCase() });
+                    { labelClass.toUpperCase(Locale.ROOT) });
             if (refs != null)
             {
               for (int i = 0, ni = refs.size(); i < ni; i++)
@@ -777,7 +791,7 @@ public class TreePanel extends GTreePanel
      * i18n description of Neighbour Joining or Average Distance method
      */
     String treecalcnm = MessageManager
-            .getString("label.tree_calc_" + treeType.toLowerCase());
+            .getString("label.tree_calc_" + treeType.toLowerCase(Locale.ROOT));
 
     /*
      * short score model name (long description can be too long)