Bug 56491 [Tasks] DeleteCompletedTasks requires Markers to be refreshed
3.0 M8 If you create a new user defined task and mark it completed by clicking on the first column or by using the context menu, the delete completed task actino does not pick up the completed task. However it does work after the markers have been refreshed (eg project rebuild). to test: 1. create a user defined marker, ensuring it is not created as completed 2. click on the first column to mark it as complete 3. select delete completed tasks from the context menu, notice it doesn't pick up the task 4. perform a project re-build (Project|clean...) 5. repeat step 3, it now picks up the marker as complete It looks like the underlying IMarker is being updated, but the concrete TaskMarker is not. The action is looking at the concrete markers.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerView.java
private static final String WAITING_FOR_WORKSPACE_CHANGES_TO_FINISH = Messages.getString("MarkerView.waiting_on_changes"); 
	private static final String SEARCHING_FOR_MARKERS = Messages.getString("MarkerView.searching_for_markers"); 
	private static final String REFRESHING_MARKER_COUNTS = Messages.getString("MarkerView.refreshing_counts"); 
	private static final String QUEUEING_VIEWER_UPDATES = Messages.getString("MarkerView.queueing_updates"); 
	private static final String FILTERING_ON_MARKER_LIMIT = Messages.getString("MarkerView.18"); 
	
	private static final String TAG_SELECTION = "selection"; 
	private static final String TAG_MARKER = "marker"; 
	private static final String TAG_RESOURCE = "resource"; 
	private static final String TAG_ID = "id"; 
	
	
	
	private int preBusyMarkers = 0;
	protected IResource[] focusResources;
	private Clipboard clipboard;
	IResourceChangeListener resourceListener = new IResourceChangeListener() {
		public void resourceChanged(IResourceChangeEvent event) {
			String[] markerTypes = getMarkerTypes();
			boolean refreshNeeded = false;
			
			for (int idx = 0; idx < markerTypes.length; idx++) {					
				IMarkerDelta[] markerDeltas = event.findMarkerDeltas(markerTypes[idx], true);
				List changes = new ArrayList(markerDeltas.length);
				
				examineDelta(markerDeltas, changes);