Author: dleangen Date: Fri Feb 17 07:12:45 2017 New Revision: 1783335 URL: http://svn.apache.org/viewvc?rev=1783335&view=rev Log: FELIX-5414: Windows files break the JSON parser
Signed-off-by: David Leangen <[email protected]> Modified: felix/trunk/converter/serializer/src/main/java/org/apache/felix/serializer/impl/json/JsonParser.java felix/trunk/converter/serializer/src/test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java Modified: felix/trunk/converter/serializer/src/main/java/org/apache/felix/serializer/impl/json/JsonParser.java URL: http://svn.apache.org/viewvc/felix/trunk/converter/serializer/src/main/java/org/apache/felix/serializer/impl/json/JsonParser.java?rev=1783335&r1=1783334&r2=1783335&view=diff ============================================================================== --- felix/trunk/converter/serializer/src/main/java/org/apache/felix/serializer/impl/json/JsonParser.java (original) +++ felix/trunk/converter/serializer/src/main/java/org/apache/felix/serializer/impl/json/JsonParser.java Fri Feb 17 07:12:45 2017 @@ -77,7 +77,7 @@ public class JsonParser { public JsonParser(CharSequence json) { String str = json.toString(); - str = str.trim().replace('\n', ' '); + str = str.trim().replace('\n', ' ').replace('\r', ' '); parsed = parseObject(str); } Modified: felix/trunk/converter/serializer/src/test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java URL: http://svn.apache.org/viewvc/felix/trunk/converter/serializer/src/test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java?rev=1783335&r1=1783334&r2=1783335&view=diff ============================================================================== --- felix/trunk/converter/serializer/src/test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java (original) +++ felix/trunk/converter/serializer/src/test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java Fri Feb 17 07:12:45 2017 @@ -19,6 +19,7 @@ package org.apache.felix.serializer.impl import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.junit.Test; @@ -38,6 +39,44 @@ public class JsonParserTest { } @Test + public void testJsonWithNewline() { + String json = "" + + "{\n" + + " \"hi\": \"ho\",\n" + + " \"ha\": [\n" + + " \"one\",\n" + + " \"two\",\n" + + " \"three\"\n" + + " ]\n" + + "}\n" + + "\n"; + JsonParser jp = new JsonParser(json); + Map<String, Object> m = jp.getParsed(); + assertEquals(2, m.size()); + assertEquals("ho", m.get("hi")); + assertEquals(3, ((List<?>)m.get("ha")).size()); + } + + @Test + public void testJsonWithCRLF() { + String json = "" + + "{\r\n" + + " \"hi\": \"ho\",\r\n" + + " \"ha\": [\r\n" + + " \"one\",\r\n" + + " \"two\",\r\n" + + " \"three\"\r\n" + + " ]\r\n" + + "}\r\n" + + "\r\n"; + JsonParser jp = new JsonParser(json); + Map<String, Object> m = jp.getParsed(); + assertEquals(2, m.size()); + assertEquals("ho", m.get("hi")); + assertEquals(3, ((List<?>)m.get("ha")).size()); + } + + @Test @SuppressWarnings("unchecked") public void testJsonComplex() { String json = "{\"a\": [1,2,3,4,5], \"b\": {\"x\": 12, \"y\": 42, \"z\": {\"test test\": \"hello hello\"}}, \"ddd\": 12.34}";
