From 7c643018c7673b2e0703b0dc483a015100e3282f Mon Sep 17 00:00:00 2001
From: gprat <guylaine.prat@c-s.fr>
Date: Tue, 30 Jun 2020 18:03:34 +0200
Subject: [PATCH] Optimize use of regex pattern

---
 .../java/org/orekit/rugged/errors/DumpReplayer.java  | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/orekit/rugged/errors/DumpReplayer.java b/src/main/java/org/orekit/rugged/errors/DumpReplayer.java
index f7de72bd..ca6378a3 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) {
-- 
GitLab