if (isShowingWorkingCopies()) {
if (getComparer() == null && isShowingWorkingCopies()) {
	protected void handleInvalidSelection(ISelection invalidSelection, ISelection newSelection) {		ISelection validNewSelection= getValidSelection(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(validNewSelection);					if (alreadySelected != null && !alreadySelected.isEmpty())						elementsToSelect.addAll(SelectionUtil.toList(validNewSelection));					validNewSelection= new StructuredSelection(elementsToSelect);				}			}		}		if (validNewSelection != newSelection)			setSelection(validNewSelection);		super.handleInvalidSelection(invalidSelection, validNewSelection);	}