StackOverflowError 运行 JUnit 与 Ant 1.9.3

StackOverflowError running JUnit with Ant 1.9.3

时不时地,当我 运行 使用 Ant 1.9.3 和 Java 1.8.0_91 我的 JUnit 报告生成时,它会在没有明显原因的情况下因 WhosebugError 而失败。我花了很多时间试图找出造成这种情况的原因,但到目前为止运气不好。

关于如何修复/解决此问题的任何想法?

[junitreport] Processing /var/lib/jenkins/workspace/mytest/reports/TESTS-TestSuites.xml to /var/lib/jenkins/workspace/mytest/reports/junit-noframes.html
[junitreport] Loading stylesheet jar:file:/usr/share/ant/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-noframes.xsl
[junitreport] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
[junitreport] Warning:  org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.

BUILD FAILED
/var/lib/jenkins/workspace/mytest/build.xml:357: java.lang.WhosebugError
    at com.sun.org.apache.xml.internal.serializer.ToHTMLStream$Trie.get2(ToHTMLStream.java:2291)
    at com.sun.org.apache.xml.internal.serializer.ToHTMLStream.getElemDesc2(ToHTMLStream.java:633)
    at com.sun.org.apache.xml.internal.serializer.ToHTMLStream.startElement(ToHTMLStream.java:795)
    at com.sun.org.apache.xml.internal.serializer.ToStream.startElement(ToStream.java:1853)
    at junit_noframes.br$dash$replace()
    at junit_noframes.br$dash$replace()
    at junit_noframes.br$dash$replace()
    at junit_noframes.br$dash$replace()
    at junit_noframes.br$dash$replace()
    at junit_noframes.br$dash$replace()

显然这是一个已知的 bug 与 ant 并在 1.9.4 中修复。将蚂蚁升级到 1.9.7。为我解决了问题!