Author: jm
Date: 2012-08-02 07:26:05 -0700 (Thu, 02 Aug 2012)
New Revision: 30069

Modified:
   
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/SimpleNetwork.java
Log:
Fixes #1302,1336: Fixed a bug in SimpleNetwork where removeEdges/NodesInternal 
would bail in the middle of deleting edges/nodes if it finds an edge/node that 
doesn't belong to the network.

Modified: 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/SimpleNetwork.java
===================================================================
--- 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/SimpleNetwork.java
      2012-08-02 03:40:01 UTC (rev 30068)
+++ 
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/SimpleNetwork.java
      2012-08-02 14:26:05 UTC (rev 30069)
@@ -236,10 +236,11 @@
                if (nodes == null || nodes.isEmpty())
                        return false;
 
+               boolean madeChanges = false;
                synchronized (this) {
                        for ( CyNode n : nodes ) {
                                if (!containsNode(n)) 
-                                       return false;
+                                       continue;
 
                                // remove adjacent edges from network
                                removeEdgesInternal(getAdjacentEdgeList(n, 
CyEdge.Type.ANY));
@@ -249,10 +250,11 @@
                                firstNode = node.remove(firstNode);
        
                                nodeCount--;
+                               madeChanges = true;
                        }
                }
 
-               return true;
+               return madeChanges;
        }
 
        protected CyEdge addEdgeInternal(final CyNode s, final CyNode t, final 
boolean directed, final CyEdge edge) {
@@ -289,10 +291,11 @@
                if ( edges == null || edges.isEmpty() )
                        return false;
 
+               boolean madeChanges = false;
                synchronized (this) {
                        for (CyEdge edge : edges) {
                                if (!containsEdge(edge))
-                                       return false;
+                                       continue;
        
                                final EdgePointer e = 
(EdgePointer)edgePointers.get(edge.getSUID());
                                edgePointers.removeKey(edge.getSUID());
@@ -300,10 +303,11 @@
                                e.remove();
        
                                edgeCount--;
+                               madeChanges = true;
                        }
                }
 
-               return true;
+               return madeChanges;
        }
 
        public boolean containsNode(final CyNode node) {

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