} else { 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); String[] arguments= Util.getProblemArgumentsFromMarker(marker.getAttribute(IJavaModelMarker.ARGUMENTS, "")); if (cu != null && id != -1 && start != -1 && end != -1 && arguments != null) { return new CorrectionContext(JavaModelUtil.toWorkingCopy(cu), start, end - start, id, arguments); }
	private CorrectionContext findCorrectionContext(IEditorInput input, IMarker marker) throws JavaModelException {		IAnnotationModel model= JavaPlugin.getDefault().getCompilationUnitDocumentProvider().getAnnotationModel(input);		if (model != null) {			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) {							ICompilationUnit cu= getCompilationUnit(marker);							return new CorrectionContext(JavaModelUtil.toWorkingCopy(cu), pos.getOffset(), pos.getLength(), annot.getId(), annot.getArguments());						}					}				}			}		}		return null;	}