Bug 409090 - Deadlock during rename of entity
Change-Id: I24512c9f531b6fb901113f5d1f527ad24d1dcc88
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdater.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdater.java
index a24442d..6fab07e 100644
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdater.java
+++ b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/util/GraphicsUpdater.java
@@ -27,6 +27,7 @@
import org.eclipse.graphiti.mm.pictograms.Shape;
import org.eclipse.graphiti.services.Graphiti;
import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants.ShapeType;
+import org.eclipse.swt.widgets.Display;
public class GraphicsUpdater {
@@ -169,17 +170,22 @@
final Text txt = getHeaderText(entityShape);
if (txt == null)
return;
- //if (!JPAEditorUtil.areHeadersEqual(txt.getValue(), newHeader)) {
+// if (!JPAEditorUtil.areHeadersEqual(txt.getValue(), newHeader)) {
if (!txt.getValue().equals(newHeader)) {
- TransactionalEditingDomain ted = TransactionUtil.getEditingDomain(txt);
- RecordingCommand rc = new RecordingCommand(ted) {
+ final TransactionalEditingDomain ted = TransactionUtil.getEditingDomain(txt);
+ final RecordingCommand rc = new RecordingCommand(ted) {
@Override
protected void doExecute() {
txt.setValue(newHeader);
}
- };
- ted.getCommandStack().execute(rc);
+ };
+
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ ted.getCommandStack().execute(rc);
+ }
+ });
}
}