diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/nio/file/UriPathEncoder.java b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/nio/file/UriPathEncoder.java index ac2ab05830b..a58f252a6f4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/nio/file/UriPathEncoder.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/nio/file/UriPathEncoder.java @@ -36,7 +36,7 @@ final class UriPathEncoder { static String encode(String path) { byte[] bytes = path.getBytes(StandardCharsets.UTF_8); for (byte b : bytes) { - if (isAllowed(b)) { + if (!isAllowed(b)) { return encode(bytes); } } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/nio/file/UriPathEncoderTests.java b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/nio/file/UriPathEncoderTests.java index e0d7179105e..dd88e15182b 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/nio/file/UriPathEncoderTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/nio/file/UriPathEncoderTests.java @@ -34,4 +34,10 @@ class UriPathEncoderTests { assertThat(UriPathEncoder.encode("/Z\u00fcrich")).isEqualTo("/Z%C3%BCrich"); } + @Test + void encodePathWhenNoEncodingIsRequiredReturnsSameInstance() { + String path = "/foo/bar"; + assertThat(UriPathEncoder.encode(path)).isSameAs(path); + } + }