Bug 307901 EPartService does not short circuit saveAll(boolean) if 'false' and/or no save handler is provided
The code looks like so... boolean success = true; for (MPart dirtyPart : dirtyParts) { if (!savePart(dirtyPart, false)) { success = false; } } return success; ...the first time a save fails, we should return false immediately.
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/PartServiceImpl.java
activePart = p;
			
			if (constructed && !listeners.isEmpty()) {
				if (lastActivePart != null && lastActivePart != activePart) {
					firePartDeactivated(lastActivePart);
				}
				if (activePart != null) {
					firePartActivated(activePart);
				}
			}
		}
	}
	@PostConstruct
	void postConstruct() {
		eventBroker.subscribe(UIEvents.buildTopic(UIEvents.ElementContainer.TOPIC,
				UIEvents.ElementContainer.SELECTEDELEMENT), selectedHandler);
		constructed = true;
		if (rootContainer == null) {
			
			
			
			application.getContext().runAndTrack(new IRunAndTrack() {
				public boolean notify(ContextChangeEvent event) {
					IObjectProvider provider = event.getContext();
					IEclipseContext eventsContext = ((ObjectProviderContext) provider).getContext();
					IEclipseContext childContext = (IEclipseContext) eventsContext
							.getLocal(IContextConstants.ACTIVE_CHILD);
					if (childContext != null) {
						rootContainer = (MElementContainer<MUIElement>) childContext
								.get(MWindow.class.getName());