diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal')
-rw-r--r-- | org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/SaxOrphanBuilder.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/SaxOrphanBuilder.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/SaxOrphanBuilder.java index 5a9228f31..13dac579d 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/SaxOrphanBuilder.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/SaxOrphanBuilder.java @@ -33,8 +33,11 @@ public class SaxOrphanBuilder { private StringBuilder currentStringContent; + private final Element orphansElement; + public SaxOrphanBuilder() throws CoreException { this.document = createDocument(); + this.orphansElement = document.getDocumentElement(); } private Document createDocument() throws CoreException { @@ -79,11 +82,13 @@ public class SaxOrphanBuilder { if (currentElement != null) { appendTextNode(); Node parentNode = currentElement.getParentNode(); - if (parentNode instanceof Element) { + // do not set the current element to be the orphans element or all tasks will end up as orphans + if (parentNode instanceof Element && parentNode != orphansElement) { currentElement = (Element) parentNode; currentStringContent = new StringBuilder(); } else { currentElement = null; + currentStringContent = null; } } } |