Bug 343394 EModelService should prevent null parameters in its find methods
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
index c1d8261..f78c514 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -2391,6 +2391,13 @@
 		}
 	}
 
+	private List<MPartStack> getPartStacks(MPerspective perspective) {
+		if (perspective == null) {
+			return Collections.emptyList();
+		}
+		return modelService.findElements(perspective, null, MPartStack.class, null);
+	}
+
 	private EventHandler selectionHandler = new EventHandler() {
 		public void handleEvent(Event event) {
 			MUIElement changedElement = (MUIElement) event.getProperty(UIEvents.EventTags.ELEMENT);
@@ -2414,10 +2421,8 @@
 			List<MPart> hiddenParts = new ArrayList<MPart>();
 			List<MPart> visibleParts = new ArrayList<MPart>();
 
-			List<MPartStack> oldStacks = modelService.findElements(oldPersp, null,
-					MPartStack.class, null);
-			List<MPartStack> newStacks = modelService.findElements(newPersp, null,
-					MPartStack.class, null);
+			List<MPartStack> oldStacks = getPartStacks(oldPersp);
+			List<MPartStack> newStacks = getPartStacks(newPersp);
 
 			for (MPartStack oldStack : oldStacks) {
 				MStackElement element = oldStack.getSelectedElement();