Skip to content

Commit c30b4fa

Browse files
committed
Merge branch '3.4.x'
Closes gh-45980
2 parents 1ae0548 + 7178458 commit c30b4fa

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/json/JsonValueWriter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ private void writeString(Object value) {
267267
switch (ch) {
268268
case '"' -> this.out.append("\\\"");
269269
case '\\' -> this.out.append("\\\\");
270-
case '/' -> this.out.append("\\/");
271270
case '\b' -> this.out.append("\\b");
272271
case '\f' -> this.out.append("\\f");
273272
case '\n' -> this.out.append("\\n");

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/JsonValueWriterTests.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.boot.json;
1818

19-
import java.io.File;
2019
import java.nio.file.Path;
2120
import java.util.ArrayList;
2221
import java.util.LinkedHashMap;
@@ -27,6 +26,9 @@
2726
import java.util.function.Consumer;
2827

2928
import org.junit.jupiter.api.Test;
29+
import org.junit.jupiter.api.condition.DisabledOnOs;
30+
import org.junit.jupiter.api.condition.EnabledOnOs;
31+
import org.junit.jupiter.api.condition.OS;
3032

3133
import org.springframework.boot.json.JsonValueWriter.Series;
3234

@@ -168,7 +170,6 @@ void writeWhenString() {
168170
void writeWhenStringRequiringEscape() {
169171
assertThat(write("\"")).isEqualTo(quoted("\\\""));
170172
assertThat(write("\\")).isEqualTo(quoted("\\\\"));
171-
assertThat(write("/")).isEqualTo(quoted("\\/"));
172173
assertThat(write("\b")).isEqualTo(quoted("\\b"));
173174
assertThat(write("\f")).isEqualTo(quoted("\\f"));
174175
assertThat(write("\n")).isEqualTo(quoted("\\n"));
@@ -177,6 +178,11 @@ void writeWhenStringRequiringEscape() {
177178
assertThat(write("\u0000\u001F")).isEqualTo(quoted("\\u0000\\u001F"));
178179
}
179180

181+
@Test
182+
void shouldNotEscapeForwardSlash() {
183+
assertThat(write("/")).isEqualTo(quoted("/"));
184+
}
185+
180186
@Test
181187
void writeObject() {
182188
Map<String, String> map = Map.of("a", "A");
@@ -249,9 +255,15 @@ void writeJavaNioPathWhenSingleElementShouldBeSerializedAsString() {
249255
}
250256

251257
@Test // gh-44502
258+
@EnabledOnOs(OS.WINDOWS)
259+
void writeJavaNioPathShouldBeSerializedAsStringOnWindows() {
260+
assertThat(doWrite((valueWriter) -> valueWriter.write(Path.of("a/b/c")))).isEqualTo(quoted("a\\\\b\\\\c"));
261+
}
262+
263+
@Test // gh-44502
264+
@DisabledOnOs(OS.WINDOWS)
252265
void writeJavaNioPathShouldBeSerializedAsString() {
253-
assertThat(doWrite((valueWriter) -> valueWriter.write(Path.of("a/b/c"))))
254-
.isEqualTo(quoted("a\\%1$sb\\%1$sc".formatted(File.separator)));
266+
assertThat(doWrite((valueWriter) -> valueWriter.write(Path.of("a/b/c")))).isEqualTo(quoted("a/b/c"));
255267
}
256268

257269
@Test

0 commit comments

Comments
 (0)