super.handleInvalidSelection(invalidSelection, newSelection);
if (validNewSelection != newSelection) setSelection(validNewSelection); super.handleInvalidSelection(invalidSelection, validNewSelection);
	protected void handleInvalidSelection(ISelection invalidSelection, ISelection newSelection) {		if (isShowingWorkingCopies()) {			// Convert to and from working copies			if (invalidSelection instanceof IStructuredSelection) {				IStructuredSelection structSel= (IStructuredSelection)invalidSelection;				List elementsToSelect= new ArrayList(structSel.size());				Iterator iter= structSel.iterator();				while (iter.hasNext()) {					Object element= iter.next();					if (element instanceof IJavaElement) {						IJavaElement je= convertToValidElement((IJavaElement)element);						if (je != null)							elementsToSelect.add(je);					}				}				if (!elementsToSelect.isEmpty()) {					List alreadySelected= SelectionUtil.toList(newSelection);					if (alreadySelected != null && !alreadySelected.isEmpty())						elementsToSelect.addAll(SelectionUtil.toList(newSelection));					newSelection= new StructuredSelection(elementsToSelect);					setSelection(newSelection);				}			}		}		super.handleInvalidSelection(invalidSelection, newSelection);	}