diff --git a/src/main/java/org/orekit/rugged/errors/DumpReplayer.java b/src/main/java/org/orekit/rugged/errors/DumpReplayer.java index f7de72bd96555306265eb2f1e962b1c120f1a761..ca6378a3b1b1bd66efbd14a7042de5494759b8e3 100644 --- a/src/main/java/org/orekit/rugged/errors/DumpReplayer.java +++ b/src/main/java/org/orekit/rugged/errors/DumpReplayer.java @@ -33,6 +33,7 @@ import java.util.List; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; +import java.util.regex.Pattern; import java.util.stream.Stream; import org.hipparchus.analysis.differentiation.DerivativeStructure; @@ -272,6 +273,13 @@ public class DumpReplayer { /** Dumped calls. */ private final List<DumpedCall> calls; + /** Pattern for delimiting regular expressions. */ + private static final Pattern SEPARATOR = Pattern.compile("\\s+"); + + /** Empty pattern. */ + private static final Pattern PATTERN = Pattern.compile(" "); + + /** Simple constructor. */ public DumpReplayer() { @@ -976,14 +984,14 @@ public class DumpReplayer { final int colon = line.indexOf(':'); if (colon > 0) { - final String parsedKey = line.substring(0, colon).trim().replaceAll(" ", "_").toUpperCase(); + final String parsedKey = PATTERN.matcher(line.substring(0, colon).trim()).replaceAll("_").toUpperCase(); try { final LineParser parser = LineParser.valueOf(parsedKey); final String[] fields; if (colon + 1 >= line.length()) { fields = new String[0]; } else { - fields = line.substring(colon + 1).trim().split("\\s+"); + fields = SEPARATOR.split(line.substring(colon + 1).trim()); } parser.parse(l, file, line, fields, global); } catch (IllegalArgumentException iae) {