You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/06/28 07:09:39 UTC

[camel] branch main updated: CAMEL-18232: camel-core - Invalid ThreadName pattern using default thread pattern on some JDKs

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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 7334ef87f25 CAMEL-18232: camel-core - Invalid ThreadName pattern using default thread pattern on some JDKs
7334ef87f25 is described below

commit 7334ef87f2527465fcbb22160c98e9fb2d16b90b
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 28 09:03:08 2022 +0200

    CAMEL-18232: camel-core - Invalid ThreadName pattern using default thread pattern on some JDKs
---
 .../apache/camel/util/concurrent/ThreadHelper.java  | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/core/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
index e7e55d1fd0a..550f559299d 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
@@ -16,16 +16,18 @@
  */
 package org.apache.camel.util.concurrent;
 
+import org.apache.camel.util.StringHelper;
+
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.regex.Pattern;
 
-import org.apache.camel.util.StringHelper;
-
 /**
  * Various helper method for thread naming.
  */
 public final class ThreadHelper {
+
     public static final String DEFAULT_PATTERN = "Camel Thread ##counter# - #name#";
+
     private static final Pattern INVALID_PATTERN = Pattern.compile(".*#\\w+#.*");
 
     private static AtomicLong threadCounter = new AtomicLong();
@@ -56,12 +58,12 @@ public final class ThreadHelper {
         String shortName = name.contains("?") ? StringHelper.before(name, "?") : name;
 
         // replace tokens
-        String answer = replaceFirst(pattern, "#longName#", longName);
+        String answer = StringHelper.replaceFirst(pattern, "#longName#", longName);
         if (shortName != null) {
-            answer = replaceFirst(answer, "#name#", shortName);
+            answer = StringHelper.replaceFirst(answer, "#name#", shortName);
         }
         String next = Long.toString(nextThreadCounter());
-        answer = replaceFirst(answer, "#counter#", next);
+        answer = StringHelper.replaceFirst(answer, "#counter#", next);
 
         // are there any #word# combos left, if so they should be considered invalid tokens
         if (INVALID_PATTERN.matcher(answer).matches()) {
@@ -72,13 +74,4 @@ public final class ThreadHelper {
         return answer;
     }
 
-    private static String replaceFirst(String input, String from, String to) {
-        // use StringHelper.replaceFirst and replaceFirst (regexp) as replace does not work on all JDK 11s (CAMEL-18232)
-        String answer = StringHelper.replaceFirst(input, from, to);
-        if (!to.contains("$")) {
-            answer = answer.replaceFirst(from, to);
-        }
-        return answer;
-    }
-
 }