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

zhongjiajie pushed a commit to branch 3.0.0-beta-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/3.0.0-beta-prepare by this 
push:
     new 69a76e8658 [refactor][perf] cache compiled regex pattern (#10099)
69a76e8658 is described below

commit 69a76e8658d70bab70c1dbbbc96771f68fdc210e
Author: youzipi <[email protected]>
AuthorDate: Sat May 21 10:36:42 2022 +0800

    [refactor][perf] cache compiled regex pattern (#10099)
    
    
    (cherry picked from commit 5161df04d75dce3dec6cc4114c38d3414ea93af8)
---
 .../apache/dolphinscheduler/common/utils/ParameterUtils.java  | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
index a1241022a8..dba207a6cf 100644
--- 
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
+++ 
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ParameterUtils.java
@@ -40,9 +40,8 @@ import java.util.regex.Pattern;
  * parameter parse utils
  */
 public class ParameterUtils {
-    private static final String DATE_PARSE_PATTERN = "\\$\\[([^\\$\\]]+)]";
-
-    private static final String DATE_START_PATTERN = "^[0-9]";
+    private static final Pattern DATE_PARSE_PATTERN = 
Pattern.compile("\\$\\[([^\\$\\]]+)]");
+    private static final Pattern DATE_START_PATTERN = 
Pattern.compile("^[0-9]");
 
     private ParameterUtils() {
         throw new UnsupportedOperationException("Construct ParameterUtils");
@@ -165,15 +164,15 @@ public class ParameterUtils {
         if (templateStr == null) {
             return null;
         }
-        Pattern pattern = Pattern.compile(DATE_PARSE_PATTERN);
+
 
         StringBuffer newValue = new StringBuffer(templateStr.length());
 
-        Matcher matcher = pattern.matcher(templateStr);
+        Matcher matcher = DATE_PARSE_PATTERN.matcher(templateStr);
 
         while (matcher.find()) {
             String key = matcher.group(1);
-            if (Pattern.matches(DATE_START_PATTERN, key)) {
+            if (DATE_START_PATTERN.matcher(key).matches()) {
                 continue;
             }
             String value = TimePlaceholderUtils.getPlaceHolderTime(key, date);

Reply via email to