svn commit: r14323 - trunk/src/argouml-core-diagrams-sequence2/src/org/argouml/uml/diagram/sequence2/ui/FigClassifierRole.java
[email protected] 11 Apr 2008 15:53:08 -0000
Newsgroups
gmane.comp.lang.uml.argouml.cvs
Message-ID
<[email protected] >
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);
}
}