Bug 94757 - highlight off by one
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
index 863e903..8851a84 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
@@ -81,6 +81,7 @@
if (enabled) {
try {
ComponentHelper helper= ComponentHelper.getComponentHelper(getProjectNode().getProject());
+ ((AntModel) getAntModel()).removeDefinerTasks(getIdentifier(), helper.getAntTypeTable());
Hashtable old= new Hashtable(helper.getAntTypeTable());
getTask().maybeConfigure();
getTask().execute();
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
index c5ad0f7..b56d3b5 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
@@ -21,6 +21,7 @@
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -1385,20 +1386,26 @@
return;
}
Iterator iter= fDefinerNodeIdentifierToDefinedTasks.keySet().iterator();
+ ComponentHelper helper= ComponentHelper.getComponentHelper(fProjectNode.getProject());
while (iter.hasNext()) {
String key = (String) iter.next();
if (fCurrentNodeIdentifiers.get(key) == null) {
- ComponentHelper helper= ComponentHelper.getComponentHelper(fProjectNode.getProject());
- List tasks= (List) fDefinerNodeIdentifierToDefinedTasks.get(key);
- Iterator iterator= tasks.iterator();
- while (iterator.hasNext()) {
- String taskName = (String) iterator.next();
- helper.getAntTypeTable().remove(taskName);
- }
+ removeDefinerTasks(key, helper.getAntTypeTable());
}
}
}
+ protected void removeDefinerTasks(String definerIdentifier, Hashtable typeTable) {
+ if (fDefinerNodeIdentifierToDefinedTasks == null) {
+ return;
+ }
+ List tasks= (List) fDefinerNodeIdentifierToDefinedTasks.get(definerIdentifier);
+ Iterator iterator= tasks.iterator();
+ while (iterator.hasNext()) {
+ typeTable.remove(iterator.next());
+ }
+ }
+
/* (non-Javadoc)
* @see org.eclipse.ant.internal.ui.model.IAntModel#addComment(int, int, int)
*/