Author: jm
Date: 2012-07-04 13:33:14 -0700 (Wed, 04 Jul 2012)
New Revision: 29757

Modified:
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
   
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
Log:
Fixes #1211: Fixed CyTable leak in AbstractTableBrowser

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2012-07-04 20:32:23 UTC (rev 29756)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AbstractTableBrowser.java
  2012-07-04 20:33:14 UTC (rev 29757)
@@ -130,9 +130,16 @@
        
        // Delete the given table from the JTable
        public void deleteTable(CyTable cyTable){
+               BrowserTableModel model = browserTableModels.remove(cyTable);
+               if (model == null) {
+                       return;
+               }
+               scrollPanes.remove(model);
+               serviceRegistrar.unregisterAllServices(model);
+               
+               model.getBrowserTable().setModel(new DefaultTableModel());
+               
                if (currentTable == cyTable) {
-                       
browserTableModels.get(cyTable).getBrowserTable().setModel(new 
DefaultTableModel());                            
-                       browserTableModels.remove(cyTable);
                        currentTable = null;
                }
        }

Modified: 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
===================================================================
--- 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2012-07-04 20:32:23 UTC (rev 29756)
+++ 
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/DefaultTableBrowser.java
   2012-07-04 20:33:14 UTC (rev 29757)
@@ -219,8 +219,14 @@
                        }
                        
                        setOpaque(true);
-                       
this.setText(network.getRow(network).get(CyNetwork.NAME, String.class));
                        
+                       // When a network is deleted, its tables are also 
deleted, but it's
+                       // possible that we still have a reference to a network 
with no tables.
+                       try {
+                               
this.setText(network.getRow(network).get(CyNetwork.NAME, String.class));
+                       } catch (NullPointerException e) {
+                       }
+                       
                        return this;
                }
        }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to