Bug 318363 [UI] Closing Perspectives changes others
If you open the Debug perspective and then close it the Package Explorer disappears. Root cause was that I opened the second perspective using the perspective switcher which performed the operation 'locally' rather than going through the WorkbenchPage#setPerspective code. This meant that the 'openPerspectives' list wasn't updated which meant that the 'closePerspective' call delegated to 'closeAllPerspectives' since it thought there was only one open.
bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/minmax/TrimStack.java
return;
			trimStackTB.getDisplay().asyncExec(new Runnable() {
				public void run() {
					updateTrimStackItems();
				}
			});
		}
	};
	private EventHandler childrenHandler = new EventHandler() {
		public void handleEvent(org.osgi.service.event.Event event) {
			if (theStack == null || trimStackTB == null)
				return;
			Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
			if (changedObj != theStack)
				return;
			trimStackTB.getDisplay().asyncExec(new Runnable() {
				public void run() {
					updateTrimStackItems();
				}
			});
		}
	};
	private EventHandler widgetHandler = new EventHandler() {
		@SuppressWarnings("restriction")
		public void handleEvent(org.osgi.service.event.Event event) {
			Object changedObj = event.getProperty(UIEvents.EventTags.ELEMENT);
			if (changedObj != theStack)
				return;
			if (theStack.getWidget() != null) {
				trimStackTB.getDisplay().asyncExec(new Runnable() {