Bug 327964 EPartService's hidePart may fail when trying to hide a shared part that's in a shared container
The placeholder retrieval code in the EPartService implementation doesn't go far down deep enough and actually stops at the shared container level. This causes the placeholder of the shared part to not be found.
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java
for (Object object : container.getChildren()) {
			if (object instanceof MElementContainer<?>) {
				MPlaceholder placeholder = getLocalPlaceholder((MElementContainer<?>) object, part);
				if (placeholder != null) {
					return placeholder;
				}
			} else if (object instanceof MPlaceholder) {
				MPlaceholder placeholder = (MPlaceholder) object;
				MUIElement ref = placeholder.getRef();
				if (ref == part) {
					return placeholder;
				}
			}
		}
		if (container instanceof MWindow) {
			MWindow win = (MWindow) container;
			for (MWindow dw : win.getWindows()) {
				MPlaceholder placeholder = getLocalPlaceholder(dw, part);
				if (placeholder != null) {
					return placeholder;
				}
			}
		}
		if (container instanceof MPerspective) {
			MPerspective persp = (MPerspective) container;
			for (MWindow dw : persp.getWindows()) {
				MPlaceholder placeholder = getLocalPlaceholder(dw, part);
				if (placeholder != null) {
					return placeholder;
				}