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

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

commit c3a5a0c4712acd69f41679184292f4928c6f1007
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Tue Aug 27 10:55:50 2024 +0200

    (chores) camel-core: delay unlikely paths when dashing in StringHelper
---
 .../java/org/apache/camel/util/StringHelper.java   | 30 ++++++++++++++--------
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git 
a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java 
b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
index 3ae96f0551d..75bda7bdd80 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
@@ -1153,25 +1153,33 @@ public final class StringHelper {
             return text;
         }
         Character prev = null;
-        Character next;
+
         char[] arr = text.toCharArray();
         StringBuilder answer = new StringBuilder(arr.length < 13 ? 16 : 
arr.length + 8);
 
         for (int i = 0; i < arr.length; i++) {
             char ch = arr[i];
-            if (i < arr.length - 1) {
-                next = arr[i + 1];
-            } else {
-                next = null;
-            }
+
             if (ch == '-' || ch == '_') {
                 answer.append("-");
-            } else if (Character.isUpperCase(ch) && prev != null && 
!Character.isUpperCase(prev)) {
-                applyDashPrefix(prev, answer, ch);
-            } else if (Character.isUpperCase(ch) && prev != null && next != 
null && Character.isLowerCase(next)) {
-                applyDashPrefix(prev, answer, ch);
             } else {
-                answer.append(Character.toLowerCase(ch));
+                if (Character.isUpperCase(ch) && prev != null) {
+                    Character next;
+
+                    if (i < arr.length - 1) {
+                        next = arr[i + 1];
+                    } else {
+                        next = null;
+                    }
+
+                    if (!Character.isUpperCase(prev) || next != null && 
Character.isLowerCase(next)) {
+                        applyDashPrefix(prev, answer, ch);
+                    } else {
+                        answer.append(Character.toLowerCase(ch));
+                    }
+                } else {
+                    answer.append(Character.toLowerCase(ch));
+                }
             }
             prev = ch;
         }

Reply via email to