Skip to content

Commit 99e2499

Browse files
committed
Improve \r escape in xml.
1 parent 426fe7a commit 99e2499

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

src/main/java/com/github/underscore/lodash/Xml.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ private static void escape(String s, StringBuilder sb) {
796796
sb.append("\n");
797797
break;
798798
case '\r':
799-
sb.append("\\r");
799+
sb.append("
");
800800
break;
801801
case '\t':
802802
sb.append("\t");

src/test/java/com/github/underscore/lodash/LodashTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,4 +1198,43 @@ public void sqlru2() {
11981198
// https://www.sql.ru/forum/1321326/kolichestvo-naydennyh-slov-v-stroke
11991199
assertEquals(2, U.countBy(U.words("Маша ищет Мишу а Миша ищет Машу")).get("ищет").intValue());
12001200
}
1201+
1202+
@Test
1203+
public void stackoverflow7() {
1204+
String json = U.objectBuilder()
1205+
.add("key1", "value1")
1206+
.add("key2", "value2")
1207+
.add("key3", U.objectBuilder()
1208+
.add("innerKey1", "value3"))
1209+
.toJson();
1210+
assertEquals("{\n \"key1\": \"value1\",\n"
1211+
+ " \"key2\": \"value2\",\n"
1212+
+ " \"key3\": {\n"
1213+
+ " \"innerKey1\": \"value3\"\n"
1214+
+ " }\n"
1215+
+ "}", json);
1216+
}
1217+
1218+
@Test
1219+
public void stackoverflow8() {
1220+
class Customer {
1221+
String name;
1222+
int age;
1223+
int id;
1224+
}
1225+
Customer customer = new Customer();
1226+
customer.name = "John";
1227+
customer.age = 30;
1228+
customer.id = 12345;
1229+
String xml = U.objectBuilder().add("customer", U.objectBuilder()
1230+
.add("name", customer.name)
1231+
.add("age", customer.age)
1232+
.add("id", customer.id)).toXml();
1233+
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
1234+
+ "<customer>\n"
1235+
+ " <name>John</name>\n"
1236+
+ " <age number=\"true\">30</age>\n"
1237+
+ " <id number=\"true\">12345</id>\n"
1238+
+ "</customer>", xml);
1239+
}
12011240
}

src/test/java/com/github/underscore/lodash/StringTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1058,7 +1058,7 @@ public void escapeXml() {
10581058
assertEquals("\\b", Xml.XmlValue.escape("\b"));
10591059
assertEquals("\\f", Xml.XmlValue.escape("\f"));
10601060
assertEquals("\n", Xml.XmlValue.escape("\n"));
1061-
assertEquals("\\r", Xml.XmlValue.escape("\r"));
1061+
assertEquals("&#xD;", Xml.XmlValue.escape("\r"));
10621062
assertEquals("\t", Xml.XmlValue.escape("\t"));
10631063
assertEquals("/", Xml.XmlValue.escape("/"));
10641064
assertEquals("&#x0000;", Xml.XmlValue.escape("\u0000"));

0 commit comments

Comments
 (0)