[565543] cleanups
diff --git a/core/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java b/core/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
index 215f70c..1de98b7 100644
--- a/core/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
+++ b/core/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2018 IBM Corporation and others.
+ * Copyright (c) 2001, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -27,7 +27,6 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -289,13 +288,13 @@
 							for (int i = 0; i < markerAttributeMaps.length; i++) {
 								String specifiedMarkerType = (String) markerAttributeMaps[i].get(IMarker.TASK);
 								IMarker marker = finalFile.createMarker(specifiedMarkerType);
-								marker.setAttributes(markerAttributeMaps[i]);
-								marker.setAttribute(IMarker.USER_EDITABLE, Boolean.FALSE);
-								marker.setAttribute(MODIFICATION_STAMP, Long.toString(file.getModificationStamp()));
+								markerAttributeMaps[i].put(IMarker.USER_EDITABLE, Boolean.FALSE);
+								markerAttributeMaps[i].put(MODIFICATION_STAMP, Long.toString(file.getModificationStamp()));
 								if (IMarker.TASK.equals(specifiedMarkerType)) {
 									// set to synthetic and make user editable
-									marker.setAttribute(SYNTHETIC_TASK, true);
+									markerAttributeMaps[i].put(SYNTHETIC_TASK, true);
 								}
+								marker.setAttributes(markerAttributeMaps[i]);
 							}
 						}
 						progressMonitor.worked(1);
@@ -303,7 +302,7 @@
 					}
 				};
 				if (file.isAccessible()) {
-					finalFile.getWorkspace().run(r, ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file), IWorkspace.AVOID_UPDATE, monitor);
+					finalFile.getWorkspace().run(r, ResourcesPlugin.getWorkspace().getRuleFactory().markerRule(file), 0, monitor);
 				}
 			}
 			catch (CoreException e1) {
diff --git a/web/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/tasks/JSFileTaskScanner.java b/web/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/tasks/JSFileTaskScanner.java
index 68e3598..18cbb1b 100644
--- a/web/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/tasks/JSFileTaskScanner.java
+++ b/web/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/tasks/JSFileTaskScanner.java
@@ -18,9 +18,9 @@
 import org.eclipse.core.resources.IFile;

 import org.eclipse.core.resources.IMarker;

 import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResource;

 import org.eclipse.core.runtime.CoreException;

 import org.eclipse.core.runtime.IProgressMonitor;

+import org.eclipse.core.runtime.SubMonitor;

 import org.eclipse.jface.text.BadLocationException;

 import org.eclipse.jface.text.FindReplaceDocumentAdapter;

 import org.eclipse.jface.text.IDocument;

@@ -89,13 +89,16 @@
 	public Map<String, Object>[] scan(IFile file, TaskTag[] taskTags, IProgressMonitor monitor) {

 		List<Map<String, Object>> newMarkers = new ArrayList<>();

 		ITextFileBufferManager textFileBufferManager = FileBuffers.getTextFileBufferManager();

+		SubMonitor localMonitor = SubMonitor.convert(monitor, 3);

 		try {

-			textFileBufferManager.connect(file.getFullPath(), LocationKind.IFILE, monitor);

-			IDocument document = textFileBufferManager.getTextFileBuffer(file.getFullPath()).getDocument();

+			textFileBufferManager.connect(file.getFullPath(), LocationKind.IFILE, localMonitor.newChild(1));

+			IDocument document = textFileBufferManager.getTextFileBuffer(file.getFullPath(), LocationKind.IFILE).getDocument();

 			IDocumentPartitioner partitioner = JavaScriptPlugin.getDefault().getJavaTextTools().createDocumentPartitioner();

 			FindReplaceDocumentAdapter finder = new FindReplaceDocumentAdapter(document);

 			partitioner.connect(document);

 			ITypedRegion[] partitions = partitioner.computePartitioning(0, document.getLength());

+			SubMonitor partitionMonitor = localMonitor.newChild(1);

+			partitionMonitor.beginTask("", partitions.length);

 			for (int i = 0; i < partitions.length; i++) {

 				for (int j = 0; j < taskTags.length; j++) {

 					switch (partitions[i].getType()) {

@@ -106,7 +109,7 @@
 								int start = lineMatch.getOffset();

 								int lengthToEndOfLine = lineInfo.getLength() - (lineMatch.getOffset() - lineInfo.getOffset());

 								String text = document.get(start, lengthToEndOfLine).trim();

-								Map<String, Object> attributesForNewTaskMarker = createInitialMarkerAttributes(text, document.getLineOfOffset(lineMatch.getOffset()), start, text.length(), IMarker.PRIORITY_NORMAL);

+								Map<String, Object> attributesForNewTaskMarker = createInitialMarkerAttributes(text, document.getLineOfOffset(lineMatch.getOffset()), start, text.length(), taskTags[j].getPriority());

 								newMarkers.add(attributesForNewTaskMarker);

 							}

 							break;

@@ -122,7 +125,7 @@
 								int lineNumber = document.getLineOfOffset(tagMatch.getOffset());

 								Map<String, Object> attributesForNewTaskMarker = createInitialMarkerAttributes(text, lineNumber, start, text.length(), taskTags[j].getPriority());

 								newMarkers.add(attributesForNewTaskMarker);

-								

+

 								tagMatch = finder.find(lineInfo.getOffset() + lineInfo.getLength(), taskTags[j].getTag(), true, false, true, false);

 							}

 							break;

@@ -130,10 +133,9 @@
 						default :

 					}

 				}

+				partitionMonitor.worked(1);

 			}

 			partitioner.disconnect();

-

-			file.deleteMarkers(MARKER_TYPE_TASK, true, IResource.DEPTH_ONE);

 		}

 		catch (CoreException e) {

 			Logger.logException(e);

@@ -143,11 +145,12 @@
 		}

 		finally {

 			try {

-				textFileBufferManager.disconnect(file.getFullPath(), LocationKind.IFILE, monitor);

+				textFileBufferManager.disconnect(file.getFullPath(), LocationKind.IFILE, localMonitor.newChild(1));

 			}

 			catch (CoreException e) {

 				Logger.logException("Exception while disconnecting file buffer", e); //$NON-NLS-1$

 			}

+			localMonitor.done();

 		}

 		return newMarkers.toArray(new Map[newMarkers.size()]);

 	}

@@ -170,8 +173,6 @@
 	 * startup(org.eclipse.core.resources.IProject)

 	 */

 	public void startup(IProject project) {

-		// TODO Auto-generated method stub

-

 	}

 

 }