Bug 137640 [CommonNavigator] New java elements not selected in project explorer
3.2 RC1 - show the Project Explorer view - create a Java project - select the project and create a package (e.g. using the toolbar button) - the package is created, but not selected (it does get selected in the Package Explorer) - select the package - create a new class - the class is created, but not selected (works in the PE) In both cases, the selection gets cleared. This results in subsequent package or class creations not knowing which source folder they should apply to. E.g. try creating two packages in a row.
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorPipelineService.java
* </p>
	 * <p>
	 * <b>Clients should not call any of the add, remove, refresh, or update
	 * methods on the viewer from this method or any code invoked by the
	 * implementation of this method.</b>
	 * </p>
	 * 
	 * @param aRemoveModification
	 *            The shape modification which contains the current suggested
	 *            parent and children. Clients may modify this parameter
	 *            directly and return it as the new shape modification.
	 * @return The new shape modification to use. Clients should <b>never</b>
	 *         return <b>null</b> from this method.
	 */
	public PipelinedShapeModification interceptRemove(
			PipelinedShapeModification aRemoveModification) {
		
		ContributorTrackingSet trackedSet =(ContributorTrackingSet) aRemoveModification.getChildren(); 
		Set interestedExtensions = new LinkedHashSet(); 	
		for (Iterator iter = trackedSet.iterator(); iter.hasNext();) {
			Object element = (Object) iter.next();
			if(element instanceof TreePath) {
				interestedExtensions.addAll(contentService.findOverrideableContentExtensionsForPossibleChild(((TreePath)element).getLastSegment()));
			} else { 
				interestedExtensions = contentService.findOverrideableContentExtensionsForPossibleChild(element);
				
			} 
		}
		for (Iterator overridingExtensionsIter = interestedExtensions.iterator(); overridingExtensionsIter.hasNext();)  
			pipelineInterceptRemove(aRemoveModification, trackedSet, (NavigatorContentExtension) overridingExtensionsIter.next());