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