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;
- }
-
}