diff options
author | mwenz | 2016-09-26 07:14:31 +0000 |
---|---|---|
committer | mwenz | 2016-09-26 07:14:31 +0000 |
commit | 012d633cc17097875ab7bc02801d2dad84e0f187 (patch) | |
tree | 25728e09cca95cea19460cc9d42e8e110671ab58 | |
parent | ccba2118ffd641c4b43a4234ed02c6a1ebe3a492 (diff) | |
download | org.eclipse.graphiti-012d633cc17097875ab7bc02801d2dad84e0f187.tar.gz org.eclipse.graphiti-012d633cc17097875ab7bc02801d2dad84e0f187.tar.xz org.eclipse.graphiti-012d633cc17097875ab7bc02801d2dad84e0f187.zip |
Bug 502091 - NPE in GFDirectEditManager.bringDown
Change-Id: I30a67720feffce8323f397db927e20c7ff847c7c
2 files changed, 22 insertions, 15 deletions
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/ThumbNailView.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/ThumbNailView.java index d784ac31..d3deca62 100644 --- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/ThumbNailView.java +++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/ThumbNailView.java @@ -1,7 +1,7 @@ /******************************************************************************* * <copyright> * - * Copyright (c) 2005, 2010 SAP AG. + * Copyright (c) 2005, 2016 SAP AG. * 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 @@ -9,6 +9,7 @@ * * Contributors: * SAP AG - initial API, implementation and documentation + * mwenz - Bug 502091 - NPE in GFDirectEditManager.bringDown * * </copyright> * @@ -79,9 +80,11 @@ public class ThumbNailView extends ViewPart implements IPartListener { @Override public void dispose() { IWorkbenchWindow workbenchWindow = GraphitiUiInternal.getWorkbenchService().getActiveOrFirstWorkbenchWindow(); - workbenchWindow.getPartService().removePartListener(this); - super.dispose(); - clearThumbnail(); + if (workbenchWindow != null) { + workbenchWindow.getPartService().removePartListener(this); + super.dispose(); + clearThumbnail(); + } } public void partActivated(IWorkbenchPart part) { diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java index c83bd632..27b86bf2 100644 --- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java +++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java @@ -1,7 +1,7 @@ /******************************************************************************* * <copyright> * - * Copyright (c) 2005, 2011 SAP AG. + * Copyright (c) 2005, 2016 SAP AG. * 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 @@ -12,6 +12,7 @@ * Ali Akar, mwenz - Bug 348420 - Opening a user contributed editor * Bug 336488 - DiagramEditor API * pjpaulin - Bug 352120 - Now uses IDiagramContainerUI interface + * mwenz - Bug 502091 - NPE in GFDirectEditManager.bringDown * * </copyright> * @@ -48,16 +49,19 @@ import org.eclipse.ui.part.EditorActionBarContributor; public class WorkbenchService implements IWorkbenchService { public IStatusLineManager getActiveStatusLineManager() { - final IWorkbenchPart activePart = getActiveOrFirstWorkbenchWindow().getActivePage().getActivePart(); - if (activePart instanceof IViewPart) { - final IViewPart viewPart = (IViewPart) activePart; - return viewPart.getViewSite().getActionBars().getStatusLineManager(); - } else if (activePart instanceof IEditorPart) { - final IEditorPart editorPart = (IEditorPart) activePart; - final IEditorActionBarContributor contributor = editorPart.getEditorSite().getActionBarContributor(); - if (contributor instanceof EditorActionBarContributor) { - final EditorActionBarContributor editorContributor = (EditorActionBarContributor) contributor; - return editorContributor.getActionBars().getStatusLineManager(); + IWorkbenchWindow activeWindow = getActiveOrFirstWorkbenchWindow(); + if (activeWindow != null) { + IWorkbenchPart activePart = activeWindow.getActivePage().getActivePart(); + if (activePart instanceof IViewPart) { + IViewPart viewPart = (IViewPart) activePart; + return viewPart.getViewSite().getActionBars().getStatusLineManager(); + } else if (activePart instanceof IEditorPart) { + IEditorPart editorPart = (IEditorPart) activePart; + IEditorActionBarContributor contributor = editorPart.getEditorSite().getActionBarContributor(); + if (contributor instanceof EditorActionBarContributor) { + EditorActionBarContributor editorContributor = (EditorActionBarContributor) contributor; + return editorContributor.getActionBars().getStatusLineManager(); + } } } // this is a useless dummy but avoids nasty null pointer checks when |