diff options
author | relves | 2007-02-09 23:43:26 +0000 |
---|---|---|
committer | relves | 2007-02-09 23:43:26 +0000 |
commit | 083d3525eedb959be9e557594eca36ee33782b38 (patch) | |
tree | b95108e708f30370b0eecff7966c5c29052d4514 /org.eclipse.mylyn.tasks.ui | |
parent | 14fd44126f4a2481afcdd0ad5c60298d646bcb22 (diff) | |
download | org.eclipse.mylyn.tasks-083d3525eedb959be9e557594eca36ee33782b38.tar.gz org.eclipse.mylyn.tasks-083d3525eedb959be9e557594eca36ee33782b38.tar.xz org.eclipse.mylyn.tasks-083d3525eedb959be9e557594eca36ee33782b38.zip |
NEW - bug 173710: invalid last task number corrupting task list
https://bugs.eclipse.org/bugs/show_bug.cgi?id=173710
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListWriter.java | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListWriter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListWriter.java index cc66676b0..548e17b43 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListWriter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListWriter.java @@ -58,8 +58,6 @@ import org.xml.sax.SAXException; * @author Rob Elves */ public class TaskListWriter { - // Last number given to new local task - public static final String ATTRIBUTE_LAST_NUM = "LastNum"; public static final String ATTRIBUTE_VERSION = "Version"; @@ -76,7 +74,7 @@ public class TaskListWriter { private DelegatingTaskExternalizer delagatingExternalizer; private List<Node> orphanedTaskNodes = new ArrayList<Node>(); - + private List<Node> orphanedQueryNodes = new ArrayList<Node>(); private String readVersion = ""; @@ -86,12 +84,11 @@ public class TaskListWriter { public TaskListWriter() { this.delagatingExternalizer = new DelegatingTaskExternalizer(); } - public void setTaskDataManager(TaskDataManager taskDataManager) { delagatingExternalizer.init(taskDataManager); } - + public void setDelegateExternalizers(List<ITaskListExternalizer> externalizers) { this.externalizers = externalizers; this.delagatingExternalizer.setDelegateExternalizers(externalizers); @@ -111,7 +108,6 @@ public class TaskListWriter { Element root = doc.createElement(ELEMENT_TASK_LIST); root.setAttribute(ATTRIBUTE_VERSION, VALUE_VERSION); - root.setAttribute(ATTRIBUTE_LAST_NUM, "" + taskList.getLastTaskNum()); // create the categories for (AbstractTaskContainer category : taskList.getCategories()) { @@ -143,7 +139,7 @@ public class TaskListWriter { for (ITask task : taskList.getAllTasks()) { createTaskElement(doc, root, task); } - + // Persist orphaned tasks... for (Node orphanedTaskNode : orphanedTaskNodes) { Node tempNode = doc.importNode(orphanedTaskNode, true); @@ -151,7 +147,7 @@ public class TaskListWriter { root.appendChild(tempNode); } } - + // Persist orphaned queries.... for (Node orphanedQueryNode : orphanedQueryNodes) { Node tempNode = doc.importNode(orphanedQueryNode, true); @@ -175,8 +171,8 @@ public class TaskListWriter { } } if (element == null) {// && - // delagatingExternalizer.canCreateElementFor(task)) - // { + // delagatingExternalizer.canCreateElementFor(task)) + // { delagatingExternalizer.createTaskElement(task, doc, root); } else if (element == null) { MylarStatusHandler.log("Did not externalize: " + task, this); @@ -260,10 +256,7 @@ public class TaskListWriter { } Element root = doc.getDocumentElement(); readVersion = root.getAttribute(ATTRIBUTE_VERSION); - String lastNum = root.getAttribute(ATTRIBUTE_LAST_NUM); - if (lastNum != null && !lastNum.equals("")) { - taskList.setLastTaskNum(Integer.parseInt(lastNum)); - } + if (readVersion.equals(VALUE_VERSION_1_0_0)) { MylarStatusHandler.log("version: " + readVersion + " not supported", this); } else { @@ -332,7 +325,7 @@ public class TaskListWriter { break; } } - if(!wasRead) { + if (!wasRead) { orphanedQueryNodes.add(child); } } @@ -341,12 +334,12 @@ public class TaskListWriter { } } - // Migration 0.7.0.1 -> 0.8.0 - // last task number field wasn't in tasklist.xml - if (lastNum == null || lastNum.equals("")) { - int largest = taskList.findLargestTaskHandle(); - taskList.setLastTaskNum(largest); - } + // bug#173710 - task number incorrect resulting in invalid task + // list + // Doing count each time + int largest = taskList.findLargestTaskHandle(); + taskList.setLastTaskNum(largest); + } } catch (Exception e) { handleException(inFile, null, e); |