else { IJavaElement fixedJe= fixCUName(marker, handleId); if (fixedJe != null) return fixedJe; else return je; }
	public static IJavaElement getJavaElement(IMarker marker) {		if (marker == null || !marker.exists())			return null;		try {			String handleId= (String)marker.getAttribute(IJavaSearchUIConstants.ATT_JE_HANDLE_ID);			IJavaElement je= JavaCore.create(handleId);			if (!marker.getAttribute(IJavaSearchUIConstants.ATT_IS_WORKING_COPY, false)) {				if (je != null&& je.exists())					return je;				else {					IJavaElement fixedJe= fixCUName(marker, handleId);					if (fixedJe != null)						return fixedJe;					else						return je;				}			}			ICompilationUnit cu= findCompilationUnit(je);			if (cu == null)				return null;			// Find working copy element			IWorkingCopy[] workingCopies= JavaUI.getSharedWorkingCopies();			int i= 0;			while (i < workingCopies.length) {				if (workingCopies[i].getOriginalElement().equals(cu)) {					je= findInWorkingCopy(workingCopies[i], je, true);					break;				}				i++;			}			if (je != null && !je.exists())				je= cu.getElementAt(marker.getAttribute(IMarker.CHAR_START, 0));			return je;		} catch (CoreException ex) {			ExceptionHandler.handle(ex, SearchMessages.getString("Search.Error.createJavaElement.title"), SearchMessages.getString("Search.Error.createJavaElement.message")); //$NON-NLS-2$ //$NON-NLS-1$			return null;		}	}