From 72e1c93c8acdb083d6456ab6f967f66f275f2d81 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Sat, 2 May 2026 12:06:14 +0300 Subject: [PATCH 1/2] Improved toXml --- src/main/java/com/github/underscore/U.java | 3 ++- src/main/java/com/github/underscore/Xml.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/underscore/U.java b/src/main/java/com/github/underscore/U.java index b65b2bab..fb4268c2 100644 --- a/src/main/java/com/github/underscore/U.java +++ b/src/main/java/com/github/underscore/U.java @@ -2260,7 +2260,8 @@ public static FetchResponse fetch( } } - public static int readWithRetry(java.io.InputStream inputStream, byte[] buffer) throws java.io.IOException { + public static int readWithRetry(java.io.InputStream inputStream, byte[] buffer) + throws java.io.IOException { java.io.IOException lastException = null; for (int attempt = 0; attempt < 2; attempt++) { try { diff --git a/src/main/java/com/github/underscore/Xml.java b/src/main/java/com/github/underscore/Xml.java index 732e006c..bcc40854 100644 --- a/src/main/java/com/github/underscore/Xml.java +++ b/src/main/java/com/github/underscore/Xml.java @@ -1193,7 +1193,8 @@ private static void checkLocalMap( || localMap2.size() != 1 || XmlValue.getMapKey(localMap2).startsWith("-") || XmlValue.getMapValue(localMap2) instanceof List) { - if (ROOT.equals(XmlValue.getMapKey(localMap2))) { + if (ROOT.equals(XmlValue.getMapKey(localMap2)) + && XmlValue.getMapValue(localMap2) instanceof List) { writeArray((List) XmlValue.getMapValue(localMap2), builder, arrayTrue); } else { XmlObject.writeXml( From f4329b255100312a23e2756c9f27fce74062e0aa Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Sat, 2 May 2026 12:16:06 +0300 Subject: [PATCH 2/2] Added test --- .../java/com/github/underscore/LodashTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/java/com/github/underscore/LodashTest.java b/src/test/java/com/github/underscore/LodashTest.java index 056c6d2f..cef5094c 100644 --- a/src/test/java/com/github/underscore/LodashTest.java +++ b/src/test/java/com/github/underscore/LodashTest.java @@ -1113,6 +1113,24 @@ void xmpToJson5() { U.xmlToJson("")); } + @Test + void xmpToJson6() { + assertEquals( + "{\n" + + " \"root\": {\n" + + " \"a\": 1\n" + + " },\n" + + " \"omit-xml-declaration\": \"yes\"\n" + + "}", + U.xmlToJson("\n" + + "\n" + + " \n" + + " 1\n" + + " \n" + + " yes\n" + + "")); + } + @Test void xmlToJsonMinimum() { assertEquals(