You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dl...@apache.org on 2017/02/17 07:12:46 UTC

svn commit: r1783335 - in /felix/trunk/converter/serializer/src: main/java/org/apache/felix/serializer/impl/json/JsonParser.java test/java/org/apache/felix/serializer/impl/json/JsonParserTest.java

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 <da...@leangen.net>

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}";