private IProblemLocation findProblemLocation(IEditorInput input, IMarker marker) {
private static IProblemLocation findProblemLocation(IEditorInput input, IMarker marker) {
	private IProblemLocation findProblemLocation(IEditorInput input, IMarker marker) {		IAnnotationModel model= JavaPlugin.getDefault().getCompilationUnitDocumentProvider().getAnnotationModel(input);		if (model != null) { // open in editor			Iterator iter= model.getAnnotationIterator();			while (iter.hasNext()) {				Object curr= iter.next();				if (curr instanceof JavaMarkerAnnotation) {					JavaMarkerAnnotation annot= (JavaMarkerAnnotation) curr;					if (marker.equals(annot.getMarker())) {						Position pos= model.getPosition(annot);						if (pos != null) {							return new ProblemLocation(pos.getOffset(), pos.getLength(), annot);						}					}				}			}		} else { // not open in editor			ICompilationUnit cu= getCompilationUnit(marker);			int id= marker.getAttribute(IJavaModelMarker.ID, -1);			int start= marker.getAttribute(IMarker.CHAR_START, -1);			int end= marker.getAttribute(IMarker.CHAR_END, -1);			int severity= marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO);			String[] arguments= CorrectionEngine.getProblemArguments(marker);			if (cu != null && id != -1 && start != -1 && end != -1 && arguments != null) {				boolean isError= (severity == IMarker.SEVERITY_ERROR);				return new ProblemLocation(start, end - start, id, arguments, isError);			}		}		return null;	}