if (fStatusLineClearer != null) { provider.removeSelectionChangedListener(fStatusLineClearer); fStatusLineClearer= null; }
	public void gotoError(boolean forward) {				ISelectionProvider provider= getSelectionProvider();				if (fStatusLineClearer != null) {			provider.removeSelectionChangedListener(fStatusLineClearer);			fStatusLineClearer= null;		}				ITextSelection s= (ITextSelection) provider.getSelection();		Position errorPosition= new Position(0, 0);		IProblemAnnotation nextError= getNextError(s.getOffset(), forward, errorPosition);				if (nextError != null) {						IMarker marker= null;			if (nextError instanceof MarkerAnnotation)				marker= ((MarkerAnnotation) nextError).getMarker();			else {				Iterator e= nextError.getOverlaidIterator();				if (e != null) {					while (e.hasNext()) {						Object o= e.next();						if (o instanceof MarkerAnnotation) {							marker= ((MarkerAnnotation) o).getMarker();							break;						}					}				}			}						if (marker != null) {				IWorkbenchPage page= getSite().getPage();				IViewPart view= view= page.findView("org.eclipse.ui.views.TaskList"); //$NON-NLS-1$				if (view instanceof TaskList) {					StructuredSelection ss= new StructuredSelection(marker);					((TaskList) view).setSelection(ss, true);				}			}						selectAndReveal(errorPosition.getOffset(), errorPosition.getLength());			setStatusLineErrorMessage(nextError.getMessage());					} else {						setStatusLineErrorMessage(null);					}	}