Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Barbin2020-02-12 08:53:36 +0000
committerFlorian Barbin2020-02-12 13:54:08 +0000
commit284e96d9be06fd0e56e55c903d4c2ccba7fc9ac9 (patch)
tree88daa3660d8f5b0ccdd48f3eb939d920bad99b64
parenta312b99e324fa46b14360910e22c5a490867fcf7 (diff)
downloadorg.eclipse.sirius-284e96d9be06fd0e56e55c903d4c2ccba7fc9ac9.tar.gz
org.eclipse.sirius-284e96d9be06fd0e56e55c903d4c2ccba7fc9ac9.tar.xz
org.eclipse.sirius-284e96d9be06fd0e56e55c903d4c2ccba7fc9ac9.zip
[552679] Make sure the session is still opened when refreshing edit mode
In a CDO context, the doRefreshEditMode might be performed once the session has been closed causing a LifeCycleException. Since the doRefreshEditMode is performed asynchronously on the main thread, the session may have been closed in the meantime. Bug: 552679 Change-Id: I9180b76b7036723915b775dbf67d80c28be2b844 Signed-off-by: Florian Barbin <florian.barbin@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/permission/EditPartAuthorityListener.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/permission/EditPartAuthorityListener.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/permission/EditPartAuthorityListener.java
index ec094ca768..3f93775222 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/permission/EditPartAuthorityListener.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/permission/EditPartAuthorityListener.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2019 THALES GLOBAL SERVICES and others.
+ * Copyright (c) 2007, 2020 THALES GLOBAL SERVICES and others.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -13,6 +13,7 @@
package org.eclipse.sirius.diagram.ui.tools.api.permission;
import java.util.Collection;
+import java.util.Optional;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
@@ -21,6 +22,7 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DecorationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
+import org.eclipse.sirius.business.api.session.Session;
import org.eclipse.sirius.common.ui.tools.api.util.EclipseUIUtil;
import org.eclipse.sirius.diagram.DDiagram;
import org.eclipse.sirius.diagram.DDiagramElement;
@@ -135,7 +137,9 @@ public class EditPartAuthorityListener implements IAuthorityListener {
@Override
public void run() {
- doRefreshEditMode(enableEditMode, diagramEditor, semanticElement);
+ if (Optional.ofNullable(diagramEditor).map(DDiagramEditor::getSession).filter(Session::isOpen).isPresent()) {
+ doRefreshEditMode(enableEditMode, diagramEditor, semanticElement);
+ }
}
});
}

Back to the top