diff options
| author | Pierre-Charles David | 2018-01-18 11:00:15 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2018-01-25 09:15:41 +0000 |
| commit | 5aeb4bcceb81f977148efb188858ceb09a5f51f5 (patch) | |
| tree | eff73c733123166e1f88dae216d5b0b5d80fdfba | |
| parent | 5fe18ca79d9deca2af49770bf5906c548e20dfca (diff) | |
| download | org.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.java | 6 |
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); |
