This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/master by this push:
     new e6287ddbd [SUREFIRE-2232] [REGRESSION] StatelessXmlReporter fails to 
process failed result without a throwable
e6287ddbd is described below

commit e6287ddbda7bf89ba370759af6164cbf925eebd1
Author: dr29bart <dr29b...@gmail.com>
AuthorDate: Thu Jan 11 09:04:26 2024 -0600

    [SUREFIRE-2232] [REGRESSION] StatelessXmlReporter fails to process failed 
result without a throwable
    
    This closes #716
---
 .../plugin/surefire/report/StatelessXmlReporter.java    |  5 ++++-
 .../surefire/report/StatelessXmlReporterTest.java       | 17 +++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
index 7fb661eb5..f5f2916c5 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporter.java
@@ -47,6 +47,7 @@ import static 
org.apache.maven.plugin.surefire.report.FileReporterUtils.stripIll
 import static org.apache.maven.plugin.surefire.report.ReportEntryType.SKIPPED;
 import static org.apache.maven.plugin.surefire.report.ReportEntryType.SUCCESS;
 import static org.apache.maven.surefire.shared.utils.StringUtils.isBlank;
+import static org.apache.maven.surefire.shared.utils.StringUtils.isNotBlank;
 
 // CHECKSTYLE_OFF: LineLength
 /**
@@ -451,7 +452,9 @@ public class StatelessXmlReporter implements 
StatelessReportEventListener<Wrappe
                     String type = delimiter == -1 ? stackTrace : 
stackTrace.substring(0, delimiter);
                     ppw.addAttribute("type", type);
                 } else {
-                    ppw.addAttribute("type", new 
StringTokenizer(stackTrace).nextToken());
+                    if (isNotBlank(stackTrace)) {
+                        ppw.addAttribute("type", new 
StringTokenizer(stackTrace).nextToken());
+                    }
                 }
             }
         }
diff --git 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
index ea2cfbc0b..f46bb2001 100644
--- 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
+++ 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/report/StatelessXmlReporterTest.java
@@ -522,6 +522,23 @@ public class StatelessXmlReporterTest extends TestCase {
         assertThat((boolean) getInternalState(out, "closed")).isTrue();
     }
 
+    public void testReporterHandlesATestWithoutMessageAndWithEmptyStackTrace() 
{
+        StackTraceWriter stackTraceWriterOne = new 
DeserializedStacktraceWriter(null, null, "");
+
+        WrappedReportEntry testReport = new WrappedReportEntry(
+                new SimpleReportEntry(
+                        NORMAL_RUN, 1L, getClass().getName(), null, "a test 
name", null, stackTraceWriterOne, 5),
+                ERROR,
+                5,
+                null,
+                null);
+
+        StatelessXmlReporter reporter = new StatelessXmlReporter(
+                reportDir, null, false, 1, new HashMap<>(), XSD, "3.0.1", 
false, false, false, false);
+
+        reporter.testSetCompleted(testReport, stats);
+    }
+
     private boolean defaultCharsetSupportsSpecialChar() {
         // some charsets are not able to deal with \u0115 on both ways of the 
conversion
         return "\u0115\u00DC".equals(new String("\u0115\u00DC".getBytes()));

Reply via email to