From c2122551c817f2113847fb32ffbff51cb8803a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=A6=D1=8B=D0=BF?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Fri, 17 Jul 2020 12:15:48 +0300 Subject: [PATCH] Improve UriComponents.sanitizeSource() --- .../java/org/springframework/web/util/UriComponents.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index 4b1e768601..b197cd9e55 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java @@ -276,7 +276,8 @@ public abstract class UriComponents implements Serializable { */ private static String sanitizeSource(String source) { int level = 0; - StringBuilder sb = new StringBuilder(); + int lastCharIndex = 0; + char[] chars = new char[source.length()]; for (char c : source.toCharArray()) { if (c == '{') { level++; @@ -287,9 +288,9 @@ public abstract class UriComponents implements Serializable { if (level > 1 || (level == 1 && c == '}')) { continue; } - sb.append(c); + chars[lastCharIndex++] = c; } - return sb.toString(); + return new String(chars, 0, lastCharIndex); } private static String getVariableName(String match) {