Author: penyaskito
Date: 2008-04-11 08:53:08-0700
New Revision: 14323

Modified:
   
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java

Log:
Added runnable to the modelChanged method, because GEF is not thread-safe. 
Refers to issue #5007

Modified: 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java?view=diff&rev=14323&p1=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java&p2=trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java&r1=14322&r2=14323
==============================================================================
--- 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java
   (original)
+++ 
trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java
   2008-04-11 08:53:08-0700
@@ -32,6 +32,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.swing.SwingUtilities;
+
 import org.apache.log4j.Logger;
 import org.argouml.model.AddAssociationEvent;
 import org.argouml.model.AttributeChangeEvent;
@@ -135,15 +137,22 @@
     /*
      * @see 
org.argouml.uml.diagram.ui.FigNodeModelElement#modelChanged(java.beans.PropertyChangeEvent)
      */
-    protected synchronized void modelChanged(PropertyChangeEvent mee) {
+    protected void modelChanged(PropertyChangeEvent mee) {
         super.modelChanged(mee);
         if (mee instanceof AddAssociationEvent
-                       || mee instanceof RemoveAssociationEvent
+                || mee instanceof RemoveAssociationEvent
                 || mee instanceof AttributeChangeEvent) {
-            renderingChanged();
-            updateListeners(getOwner(), getOwner());
-            notationProvider.updateListener(this, getOwner(), mee);
-            damage();
+            Runnable doWorkRunnable= new Runnable(){
+                public void run(){
+
+                    renderingChanged();
+                    updateListeners(getOwner(), getOwner());
+
+                    damage();
+                }};
+
+                SwingUtilities.invokeLater(doWorkRunnable);
+                notationProvider.updateListener(this, getOwner(), mee);
         }
     }
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to