Author: paperwing
Date: 2012-07-03 14:46:05 -0700 (Tue, 03 Jul 2012)
New Revision: 29749

Modified:
   
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/TopologyFilter.java
Log:
refs #1203 No longer throws exception when using a topology filter while 
including only neighbour nodes that also pass another filter.

Modified: 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/TopologyFilter.java
===================================================================
--- 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/TopologyFilter.java
  2012-07-03 20:06:59 UTC (rev 29748)
+++ 
core3/impl/trunk/filter-impl/src/main/java/org/cytoscape/filter/internal/filters/model/TopologyFilter.java
  2012-07-03 21:46:05 UTC (rev 29749)
@@ -37,6 +37,7 @@
 import java.util.BitSet;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -220,13 +221,17 @@
                
                // remove all the neighbors that do not pass the given filter
                if (!passFilter.getName().equalsIgnoreCase("None")) {
-                       for (CyNode node : neighborSet) {
-                               int nodeIndex = pIndexMap.get(node).intValue(); 
                        
+                       Iterator<CyNode> iterator = neighborSet.iterator();
+                       
+                       CyNode node;
+                       while (iterator.hasNext()) {
+                               node = iterator.next();
+                               int nodeIndex = pIndexMap.get(node).intValue();
                                
                                if (!passFilter.getNodeBits().get(nodeIndex)) {
-                                       neighborSet.remove(node);
-                               }                               
-                       }                                                       
+                                       iterator.remove();
+                               }
+                       }
                }
                
                if (neighborSet.size() < minNeighbors) {

-- 
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