Author: mes
Date: 2011-02-02 16:34:11 -0800 (Wed, 02 Feb 2011)
New Revision: 24005
Modified:
core3/viewmodel-impl/trunk/impl/src/main/java/org/cytoscape/view/model/internal/CyNetworkViewManagerImpl.java
Log:
moved event firing outside of lock
Modified:
core3/viewmodel-impl/trunk/impl/src/main/java/org/cytoscape/view/model/internal/CyNetworkViewManagerImpl.java
===================================================================
---
core3/viewmodel-impl/trunk/impl/src/main/java/org/cytoscape/view/model/internal/CyNetworkViewManagerImpl.java
2011-02-03 00:33:56 UTC (rev 24004)
+++
core3/viewmodel-impl/trunk/impl/src/main/java/org/cytoscape/view/model/internal/CyNetworkViewManagerImpl.java
2011-02-03 00:34:11 UTC (rev 24005)
@@ -102,15 +102,20 @@
final Long viewID = view.getModel().getSUID();
+ // do this outside of the lock to fail early
+ if (!networkViewMap.containsKey(viewID))
+ throw new IllegalArgumentException(
+ "network view is not recognized by this
NetworkManager");
+
+ // let everyone know!
+ cyEventHelper.fireSynchronousEvent(new
NetworkViewAboutToBeDestroyedEvent(this, view));
+
synchronized (this) {
+ // do this again within the lock to be safe
if (!networkViewMap.containsKey(viewID))
throw new IllegalArgumentException(
"network view is not recognized
by this NetworkManager");
- // TODO firing an event from within a lock!!!!
- final CyNetworkView toDestroy = view;
- cyEventHelper.fireSynchronousEvent(new
NetworkViewAboutToBeDestroyedEvent(this, toDestroy));
-
networkViewMap.remove(viewID);
}
--
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.