Fix potential NPE
Change-Id: Ica3669bad719f5d553567ac0072ef2393d213391
Signed-off-by: Axel RICHARD <axel.richard@obeo.fr>
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/actions/SelectDiffAction.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/actions/SelectDiffAction.java
index 61d0395..cc2b523 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/actions/SelectDiffAction.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/actions/SelectDiffAction.java
@@ -17,6 +17,10 @@
import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.Navigatable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.commands.ActionHandler;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.IHandlerActivation;
import org.eclipse.ui.handlers.IHandlerService;
@@ -113,9 +117,21 @@
@SuppressWarnings("cast")
protected IHandlerService getHandlerService() {
- // explicit cast necessary for Luna
- return (IHandlerService)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
- .getActivePart().getSite().getService(IHandlerService.class);
+ if (PlatformUI.isWorkbenchRunning()) {
+ IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+ if (activePage != null) {
+ IWorkbenchPart activePart = activePage.getActivePart();
+ if (activePart != null) {
+ IWorkbenchPartSite site = activePart.getSite();
+ if (site != null) {
+ // explicit cast necessary for Luna
+ return (IHandlerService)site.getService(IHandlerService.class);
+ }
+ }
+ }
+ }
+ return null;
}
/**