addSpecialAttributes(marker.getAttributes());
Map attributes= marker.getAttributes(); addSpecialAttributes(attributes); marker.setAttributes(attributes);
	public String run(int offset, int length) throws JavaModelException {		ISourceReference sr= getSourceReference();		if (sr.getSourceRange() == null) {			return SearchMessages.getString("FindOccurrencesEngine.noSource.text"); //$NON-NLS-1$ 		}				final CompilationUnit root= createAST();		if (root == null) {			return SearchMessages.getString("FindOccurrencesEngine.cannotParse.text"); //$NON-NLS-1$		}		String message= fFinder.initialize(root, offset, length);		if (message != null)			return message;				final IDocument document= new Document(getSourceReference().getSource());				final IWorkspaceRunnable runnable= new IWorkspaceRunnable() {			public void run(IProgressMonitor monitor) throws CoreException {				ISearchResultView view= startSearch();				fFinder.perform();				IResource file= getMarkerOwner();								IMarker[] markers= fFinder.createMarkers(file, document);				for (int i = 0; i < markers.length; i++) {					IMarker marker= markers[i];					addSpecialAttributes(marker.getAttributes());					addMatch(view, file, marker);				}				searchFinished(view);			}		};		run(runnable);		return null;	}