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.

Reply via email to