From 1b4721e0c401edbae7724c8168988189848ed5c3 Mon Sep 17 00:00:00 2001 From: Thomas Beyer Date: Mon, 4 Mar 2013 09:15:43 -0500 Subject: Bug 394499 - NavigatorSaveablesService NPE during shutdown --- .../navigator/NavigatorSaveablesService.java | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java index fd248e957e4..7391102af6c 100644 --- a/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java +++ b/bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorSaveablesService.java @@ -280,17 +280,20 @@ public class NavigatorSaveablesService implements INavigatorSaveablesService, Vi } public synchronized Saveable[] getActiveSaveables() { - ITreeContentProvider contentProvider = (ITreeContentProvider) viewer + if(!isDisposed()){ + ITreeContentProvider contentProvider = (ITreeContentProvider) viewer .getContentProvider(); - IStructuredSelection selection = (IStructuredSelection) viewer - .getSelection(); - if (selection instanceof ITreeSelection) { - return getActiveSaveablesFromTreeSelection((ITreeSelection) selection); - } else if (contentProvider instanceof ITreePathContentProvider) { - return getActiveSaveablesFromTreePathProvider(selection, (ITreePathContentProvider) contentProvider); - } else { - return getActiveSaveablesFromTreeProvider(selection, contentProvider); + IStructuredSelection selection = (IStructuredSelection) viewer + .getSelection(); + if (selection instanceof ITreeSelection) { + return getActiveSaveablesFromTreeSelection((ITreeSelection) selection); + } else if (contentProvider instanceof ITreePathContentProvider) { + return getActiveSaveablesFromTreePathProvider(selection, (ITreePathContentProvider) contentProvider); + } else { + return getActiveSaveablesFromTreeProvider(selection, contentProvider); + } } + return new Saveable[0]; } /** -- cgit v1.2.3