Browse Source

better diagnostics from XmlLogger.java

PR: 28993
Obtained from: Jesse Glick


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276464 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Reilly 21 years ago
parent
commit
6cc4c84df3
2 changed files with 20 additions and 5 deletions
  1. +14
    -5
      src/main/org/apache/tools/ant/XmlLogger.java
  2. +6
    -0
      src/main/org/apache/tools/ant/util/DOMElementWriter.java

+ 14
- 5
src/main/org/apache/tools/ant/XmlLogger.java View File

@@ -116,6 +116,9 @@ public class XmlLogger implements BuildLogger {
private long startTime; private long startTime;
/** Element created at the start time. */ /** Element created at the start time. */
private Element element; 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); stream = new FileOutputStream(outFilename);
} }
out = new OutputStreamWriter(stream, "UTF8"); out = new OutputStreamWriter(stream, "UTF8");
out.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n");
out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
if (xslUri.length() > 0) { if (xslUri.length() > 0) {
out.write("<?xml-stylesheet type=\"text/xsl\" href=\"" out.write("<?xml-stylesheet type=\"text/xsl\" href=\""
+ xslUri + "\"?>\n\n"); + xslUri + "\"?>\n\n");
@@ -209,6 +212,10 @@ public class XmlLogger implements BuildLogger {
threadStack = new Stack(); threadStack = new Stack();
threadStacks.put(Thread.currentThread(), threadStack); threadStacks.put(Thread.currentThread(), threadStack);
} }
/* For debugging purposes uncomment:
org.w3c.dom.Comment s = doc.createComment("stack=" + threadStack);
buildElement.element.appendChild(s);
*/
return threadStack; return threadStack;
} }


@@ -252,9 +259,9 @@ public class XmlLogger implements BuildLogger {
TimedElement poppedStack = (TimedElement) threadStack.pop(); TimedElement poppedStack = (TimedElement) threadStack.pop();
if (poppedStack != targetElement) { if (poppedStack != targetElement) {
throw new RuntimeException("Mismatch - popped element = " throw new RuntimeException("Mismatch - popped element = "
+ poppedStack.element
+ poppedStack
+ " finished target element = " + " finished target element = "
+ targetElement.element);
+ targetElement);
} }
if (!threadStack.empty()) { if (!threadStack.empty()) {
parentElement = (TimedElement) threadStack.peek(); parentElement = (TimedElement) threadStack.peek();
@@ -320,11 +327,13 @@ public class XmlLogger implements BuildLogger {
TimedElement poppedStack = (TimedElement) threadStack.pop(); TimedElement poppedStack = (TimedElement) threadStack.pop();
if (poppedStack != taskElement) { if (poppedStack != taskElement) {
throw new RuntimeException("Mismatch - popped element = " throw new RuntimeException("Mismatch - popped element = "
+ poppedStack.element + " finished task element = "
+ taskElement.element);
+ poppedStack + " finished task element = "
+ taskElement);
} }
} }
tasks.remove(task); tasks.remove(task);
} else {
throw new RuntimeException("Unknown task " + task + " not in " + tasks);
} }
} }




+ 6
- 0
src/main/org/apache/tools/ant/util/DOMElementWriter.java View File

@@ -117,6 +117,12 @@ public class DOMElementWriter {
out.write(encode(child.getNodeValue())); out.write(encode(child.getNodeValue()));
break; break;


case Node.COMMENT_NODE:
out.write("<!--");
out.write(encode(child.getNodeValue()));
out.write("-->");
break;

case Node.CDATA_SECTION_NODE: case Node.CDATA_SECTION_NODE:
out.write("<![CDATA["); out.write("<![CDATA[");
out.write(encodedata(((Text) child).getData())); out.write(encodedata(((Text) child).getData()));


Loading…
Cancel
Save