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.
tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/application/EPartServiceTest.java
partDescriptor.setCategory("aCategory");
		application.getDescriptors().add(partDescriptor);
		MPartStack partStackA = BasicFactoryImpl.eINSTANCE.createPartStack();
		window.getChildren().add(partStackA);
		MPartStack partStackB = BasicFactoryImpl.eINSTANCE.createPartStack();
		partStackB.getTags().add("aCategory");
		window.getChildren().add(partStackB);
		MPart partA = BasicFactoryImpl.eINSTANCE.createPart();
		partA.setElementId("partA");
		partStackA.getChildren().add(partA);
		partStackA.setSelectedElement(partA);
		window.setSelectedElement(partStackA);
		application.setSelectedElement(window);
		initialize(applicationContext, application);
		getEngine().createGui(window);
		EPartService partService = (EPartService) window.getContext().get(
				EPartService.class.getName());
		partService.activate(partA);
		assertEquals(partA, partService.getActivePart());
		MPart partB = partService.showPart("partB",
				EPartService.PartState.CREATE);
		assertEquals(1, partStackA.getChildren().size());
		assertEquals(
				"Only creating the part, the active part should not have changed",
				partA, partService.getActivePart());
		assertNotNull("The shown part should have a context",
				partB.getContext());
		assertTrue(
				"The part is the only one in the stack, it should be visible",
				partService.isPartVisible(partB));