if (marker != null) {
if (marker != null && !marker.equals(fLastMarkerTarget)) {
	private void updateAnnotationViews(Annotation annotation) {		IMarker marker= null;		if (annotation instanceof MarkerAnnotation)			marker= ((MarkerAnnotation) annotation).getMarker();		else if (annotation instanceof IJavaAnnotation) {			Iterator e= ((IJavaAnnotation) annotation).getOverlaidIterator();			if (e != null) {				while (e.hasNext()) {					Object o= e.next();					if (o instanceof MarkerAnnotation) {						marker= ((MarkerAnnotation) o).getMarker();						break;					}				}			}		}					if (marker != null) {			try {				boolean isProblem= marker.isSubtypeOf(IMarker.PROBLEM);				IWorkbenchPage page= getSite().getPage();				IViewPart view= view= page.findView(isProblem ? IPageLayout.ID_PROBLEM_VIEW: IPageLayout.ID_TASK_LIST); //$NON-NLS-1$  //$NON-NLS-2$				Method method= view.getClass().getMethod("setSelection", new Class[] { IStructuredSelection.class, boolean.class}); //$NON-NLS-1$				method.invoke(view, new Object[] {new StructuredSelection(marker), Boolean.TRUE });			} catch (CoreException x) {			} catch (NoSuchMethodException x) {			} catch (IllegalAccessException x) {			} catch (InvocationTargetException x) {			}			// ignore exceptions, don't update any of the lists, just set statusline		}				}