diff --git a/src/main/org/apache/tools/ant/XmlLogger.java b/src/main/org/apache/tools/ant/XmlLogger.java index dbe4d3833..710b0e68c 100644 --- a/src/main/org/apache/tools/ant/XmlLogger.java +++ b/src/main/org/apache/tools/ant/XmlLogger.java @@ -116,6 +116,9 @@ public class XmlLogger implements BuildLogger { private long startTime; /** Element created at the start time. */ private Element element; + public String toString() { + return element.getTagName() + ":" + element.getAttribute("name"); + } } /** @@ -178,7 +181,7 @@ public class XmlLogger implements BuildLogger { stream = new FileOutputStream(outFilename); } out = new OutputStreamWriter(stream, "UTF8"); - out.write("\n"); + out.write("\n"); if (xslUri.length() > 0) { out.write("\n\n"); @@ -209,6 +212,10 @@ public class XmlLogger implements BuildLogger { threadStack = new Stack(); threadStacks.put(Thread.currentThread(), threadStack); } + /* For debugging purposes uncomment: + org.w3c.dom.Comment s = doc.createComment("stack=" + threadStack); + buildElement.element.appendChild(s); + */ return threadStack; } @@ -252,9 +259,9 @@ public class XmlLogger implements BuildLogger { TimedElement poppedStack = (TimedElement) threadStack.pop(); if (poppedStack != targetElement) { throw new RuntimeException("Mismatch - popped element = " - + poppedStack.element + + poppedStack + " finished target element = " - + targetElement.element); + + targetElement); } if (!threadStack.empty()) { parentElement = (TimedElement) threadStack.peek(); @@ -320,11 +327,13 @@ public class XmlLogger implements BuildLogger { TimedElement poppedStack = (TimedElement) threadStack.pop(); if (poppedStack != taskElement) { throw new RuntimeException("Mismatch - popped element = " - + poppedStack.element + " finished task element = " - + taskElement.element); + + poppedStack + " finished task element = " + + taskElement); } } tasks.remove(task); + } else { + throw new RuntimeException("Unknown task " + task + " not in " + tasks); } } diff --git a/src/main/org/apache/tools/ant/util/DOMElementWriter.java b/src/main/org/apache/tools/ant/util/DOMElementWriter.java index 3c6f601fd..2c73e4968 100644 --- a/src/main/org/apache/tools/ant/util/DOMElementWriter.java +++ b/src/main/org/apache/tools/ant/util/DOMElementWriter.java @@ -117,6 +117,12 @@ public class DOMElementWriter { out.write(encode(child.getNodeValue())); break; + case Node.COMMENT_NODE: + out.write(""); + break; + case Node.CDATA_SECTION_NODE: out.write("