From 848127ae49fb3894944f4f79897c23f6c757c489 Mon Sep 17 00:00:00 2001 From: dreis2211 Date: Thu, 23 Apr 2020 19:41:51 +0200 Subject: [PATCH] Avoid recompiling pattern in Handler#canonicalize See gh-21103 --- .../java/org/springframework/boot/loader/jar/Handler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java index 6829eca65c..2aef5223cf 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java @@ -49,6 +49,8 @@ public class Handler extends URLStreamHandler { private static final String SEPARATOR = "!/"; + private static final Pattern SEPARATOR_PATTERN = Pattern.compile(SEPARATOR, Pattern.LITERAL); + private static final String CURRENT_DIR = "/./"; private static final Pattern CURRENT_DIR_PATTERN = Pattern.compile(CURRENT_DIR, Pattern.LITERAL); @@ -285,7 +287,7 @@ public class Handler extends URLStreamHandler { } private String canonicalize(String path) { - return path.replace(SEPARATOR, "/"); + return SEPARATOR_PATTERN.matcher(path).replaceAll("/"); } public JarFile getRootJarFileFromUrl(URL url) throws IOException {