Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2018-01-18 11:00:15 +0000
committerPierre-Charles David2018-01-25 09:15:41 +0000
commit5aeb4bcceb81f977148efb188858ceb09a5f51f5 (patch)
treeeff73c733123166e1f88dae216d5b0b5d80fdfba
parent5fe18ca79d9deca2af49770bf5906c548e20dfca (diff)
downloadorg.eclipse.sirius-5aeb4bcceb81f977148efb188858ceb09a5f51f5.tar.gz
org.eclipse.sirius-5aeb4bcceb81f977148efb188858ceb09a5f51f5.tar.xz
org.eclipse.sirius-5aeb4bcceb81f977148efb188858ceb09a5f51f5.zip
[529977] Avoid NPE in async callback when the session is closed
Bug: 529977 Change-Id: I6f5e212942cb666509d9c752a72ae4e49a5dccf3 Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
index a5d89039af..5b3711660c 100644
--- a/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
+++ b/plugins/org.eclipse.sirius.ui.editor/src/org/eclipse/sirius/ui/editor/internal/graphicalcomponents/GraphicalSemanticModelsHandler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017 Obeo.
+ * Copyright (c) 2017, 2018 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -639,6 +639,10 @@ public class GraphicalSemanticModelsHandler implements SessionListener, SessionM
*/
private void initSelectionListener() {
treeViewer.addSelectionChangedListener((event) -> {
+ if (session == null || session.getTransactionalEditingDomain() == null || session.getTransactionalEditingDomain().getCommandStack() == null) {
+ // Can happen if we're called asynchronously at a time when the session and TED have already been closed/disposed.
+ return;
+ }
TreeSelection selection = (TreeSelection) event.getSelection();
if (event.getSelection().isEmpty()) {
deleteActionHandler.setEnabled(false);

Back to the top