in maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java [428:478]
private static void getTestProblems(
OutputStreamWriter outputStreamWriter,
XMLWriter ppw,
WrappedReportEntry report,
boolean trimStackTrace,
OutputStream fw,
String testErrorType,
boolean createOutErrElementsInside)
throws IOException {
ppw.startElement(testErrorType);
String stackTrace = report.getStackTrace(trimStackTrace);
if (report.getMessage() != null && !report.getMessage().isEmpty()) {
ppw.addAttribute("message", extraEscapeAttribute(report.getMessage()));
}
if (report.getStackTraceWriter() != null) {
//noinspection ThrowableResultOfMethodCallIgnored
SafeThrowable t = report.getStackTraceWriter().getThrowable();
if (t != null) {
if (t.getMessage() != null) {
int delimiter = stackTrace.indexOf(":");
String type = delimiter == -1 ? stackTrace : stackTrace.substring(0, delimiter);
ppw.addAttribute("type", type);
} else {
ppw.addAttribute("type", new StringTokenizer(stackTrace).nextToken());
}
}
}
boolean hasNestedElements = createOutErrElementsInside & stackTrace != null;
if (stackTrace != null) {
if (hasNestedElements) {
ppw.startElement("stackTrace");
}
extraEscapeElementValue(stackTrace, outputStreamWriter, ppw, fw);
if (hasNestedElements) {
ppw.endElement();
}
}
if (createOutErrElementsInside) {
createOutErrElements(outputStreamWriter, ppw, report, fw);
}
ppw.endElement(); // entry type
}