You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/05/22 16:07:11 UTC
[maven-surefire] 01/01: Simplify XML time value parsing
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch backport
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit b671b1ccee4e6caa9cfdbf4e8ee614bc4c543b4b
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon May 22 16:25:34 2023 +0200
Simplify XML time value parsing
---
.../surefire/report/TestSuiteXmlParser.java | 35 ++++++++--------------
1 file changed, 12 insertions(+), 23 deletions(-)
diff --git a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
index 83ccc0619..66817014e 100644
--- a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
+++ b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java
@@ -26,8 +26,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.text.NumberFormat;
-import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -40,15 +38,12 @@ import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import static java.nio.charset.StandardCharsets.UTF_8;
-import static java.util.Locale.ENGLISH;
import static org.apache.maven.shared.utils.StringUtils.isBlank;
/**
*
*/
public final class TestSuiteXmlParser extends DefaultHandler {
- private final NumberFormat numberFormat = NumberFormat.getInstance(ENGLISH);
-
private final ConsoleLogger consoleLogger;
private ReportTestSuite defaultSuite;
@@ -111,13 +106,11 @@ public final class TestSuiteXmlParser extends DefaultHandler {
case "testsuite":
defaultSuite = new ReportTestSuite();
currentSuite = defaultSuite;
-
- try {
- Number time = numberFormat.parse(attributes.getValue("time"));
-
- defaultSuite.setTimeElapsed(time.floatValue());
- } catch (NullPointerException e) {
- consoleLogger.error("WARNING: no time attribute found on testsuite element");
+ String timeStr = attributes.getValue("time");
+ if (timeStr != null) {
+ defaultSuite.setTimeElapsed(Float.parseFloat(timeStr));
+ } else {
+ consoleLogger.warning("No time attribute found on testsuite element");
}
final String name = attributes.getValue("name");
@@ -131,8 +124,6 @@ public final class TestSuiteXmlParser extends DefaultHandler {
classesToSuitesIndex.put(defaultSuite.getFullClassName(), suites.size() - 1);
break;
case "testcase":
- currentElement = new StringBuilder();
-
testCase = new ReportTestCase().setName(attributes.getValue("name"));
String fullClassName = attributes.getValue("classname");
@@ -149,13 +140,12 @@ public final class TestSuiteXmlParser extends DefaultHandler {
}
}
- String timeAsString = attributes.getValue("time");
- Number time = isBlank(timeAsString) ? 0 : numberFormat.parse(timeAsString);
+ timeStr = attributes.getValue("time");
testCase.setFullClassName(currentSuite.getFullClassName())
.setClassName(currentSuite.getName())
.setFullName(currentSuite.getFullClassName() + "." + testCase.getName())
- .setTime(time.floatValue());
+ .setTime(timeStr != null ? Float.parseFloat(timeStr) : 0.0f);
if (currentSuite != defaultSuite) {
currentSuite.setTimeElapsed(testCase.getTime() + currentSuite.getTimeElapsed());
@@ -184,8 +174,8 @@ public final class TestSuiteXmlParser extends DefaultHandler {
default:
break;
}
- } catch (ParseException e) {
- throw new SAXException(e.getMessage(), e);
+ } catch (NumberFormatException e) {
+ throw new SAXException("Failed to parse time value", e);
}
}
}
@@ -206,10 +196,9 @@ public final class TestSuiteXmlParser extends DefaultHandler {
break;
case "time":
try {
- defaultSuite.setTimeElapsed(
- numberFormat.parse(currentElement.toString()).floatValue());
- } catch (ParseException e) {
- throw new SAXException(e.getMessage(), e);
+ defaultSuite.setTimeElapsed(Float.parseFloat(currentElement.toString()));
+ } catch (NumberFormatException e) {
+ throw new SAXException("Failed to parse time value", e);
}
break;
default: