From d5370e6852cb61e333369127a517474de2a7ec58 Mon Sep 17 00:00:00 2001 From: dreis2211 Date: Mon, 11 Dec 2017 17:08:38 +0100 Subject: [PATCH] Precompile current dir pattern in Handler Closes gh-11321 --- .../java/org/springframework/boot/loader/jar/Handler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java index 952f7133bac..991309413b4 100644 --- a/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java +++ b/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/Handler.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.regex.Pattern; /** * {@link URLStreamHandler} for Spring Boot loader {@link JarFile}s. @@ -50,6 +51,8 @@ public class Handler extends URLStreamHandler { private static final String CURRENT_DIR = "/./"; + private static final Pattern CURRENT_DIR_PATTERN = Pattern.compile(CURRENT_DIR); + private static final String PARENT_DIR = "/../"; private static final String[] FALLBACK_HANDLERS = { @@ -237,7 +240,7 @@ public class Handler extends URLStreamHandler { } private String replaceCurrentDir(String file) { - return file.replace(CURRENT_DIR, "/"); + return CURRENT_DIR_PATTERN.matcher(file).replaceAll("/"); } @Override