Author: mes
Date: 2011-02-02 16:33:56 -0800 (Wed, 02 Feb 2011)
New Revision: 24004
Modified:
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyNetworkManagerImpl.java
Log:
moved event firing outside of lock
Modified:
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyNetworkManagerImpl.java
===================================================================
---
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyNetworkManagerImpl.java
2011-02-03 00:33:28 UTC (rev 24003)
+++
core3/model-impl/trunk/impl/src/main/java/org/cytoscape/model/internal/CyNetworkManagerImpl.java
2011-02-03 00:33:56 UTC (rev 24004)
@@ -90,16 +90,21 @@
throw new NullPointerException("network is null");
final Long networkId = network.getSUID();
+
+ // check outside the lock so that we fail early
+ if (!networkMap.containsKey(networkId))
+ throw new IllegalArgumentException(
+ "network is not recognized by this
NetworkManager");
+ // let everyone know!
+ cyEventHelper.fireSynchronousEvent(new
NetworkAboutToBeDestroyedEvent(CyNetworkManagerImpl.this, network));
+
synchronized (this) {
+ // check again within the lock in case something has
changed
if (!networkMap.containsKey(networkId))
throw new IllegalArgumentException(
"network is not recognized by
this NetworkManager");
- // TODO firing an event from within a lock!!!!
- final CyNetwork toDestroy = network;
- cyEventHelper.fireSynchronousEvent(new
NetworkAboutToBeDestroyedEvent(CyNetworkManagerImpl.this, toDestroy));
-
for (CyNode n : network.getNodeList())
n.getCyRow().set("selected", false);
for (CyEdge e : network.getEdgeList())
--
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.