Repository: commons-text
Updated Branches:
  refs/heads/master 804e4599b -> de635ddc2


TEXT-100: Fix escape signs in #unescapeJson

This closes #72


Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/c9f92a02
Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/c9f92a02
Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/c9f92a02

Branch: refs/heads/master
Commit: c9f92a02f8c0ddfc8e8f30fadf2ac932072ae284
Parents: 804e459
Author: drajakumar <[email protected]>
Authored: Wed Oct 18 21:44:46 2017 +0530
Committer: Bruno P. Kinoshita <[email protected]>
Committed: Sat Oct 21 10:38:45 2017 +1300

----------------------------------------------------------------------
 .../java/org/apache/commons/text/StringEscapeUtils.java     | 9 ++++++++-
 .../java/org/apache/commons/text/StringEscapeUtilsTest.java | 9 ++++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-text/blob/c9f92a02/src/main/java/org/apache/commons/text/StringEscapeUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/text/StringEscapeUtils.java 
b/src/main/java/org/apache/commons/text/StringEscapeUtils.java
index 3ac66ff..cd15a8a 100644
--- a/src/main/java/org/apache/commons/text/StringEscapeUtils.java
+++ b/src/main/java/org/apache/commons/text/StringEscapeUtils.java
@@ -302,7 +302,14 @@ public class StringEscapeUtils {
      * object allows the Json unescaping functionality to be used
      * as the foundation for a custom translator.
      */
-    public static final CharSequenceTranslator UNESCAPE_JSON = UNESCAPE_JAVA;
+    public static final CharSequenceTranslator UNESCAPE_JSON;
+    static {
+        UNESCAPE_JSON = new AggregateTranslator(
+                new OctalUnescaper(),     // .between('\1', '\377'),
+                new UnicodeUnescaper(),
+                new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_UNESCAPE)
+        );
+    }
 
     /**
      * Translator object for unescaping escaped HTML 3.0.

http://git-wip-us.apache.org/repos/asf/commons-text/blob/c9f92a02/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java 
b/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java
index 7236b03..db2bea1 100644
--- a/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java
+++ b/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java
@@ -620,7 +620,7 @@ public class StringEscapeUtilsTest {
         assertEquals(jsonString, StringEscapeUtils.unescapeJson(jsonString));
     }
 
-    @Ignore("https://issues.apache.org/jira/browse/TEXT-100.";)
+    //@Ignore("https://issues.apache.org/jira/browse/TEXT-100.";)
     @Test
     public void testUnescapeJsonFoundBug_Issue_Text_100() {
         final String jsonString = 
"{\"age\":100,\"name\":\"m\\\"kyong.com\",\"messages\":[\"msg 1\",\"msg 
2\",\"msg 3\"]}";
@@ -628,4 +628,11 @@ public class StringEscapeUtilsTest {
         assertEquals(jsonString, StringEscapeUtils.unescapeJson(jsonString));
     }
 
+    @Test
+    public void testUnescapeJsonFoundBug_Issue_Text_100_Fix() {
+        final String jsonString = 
"{\"age\":100,\"name\":\"n\\\"m\\\"kyong.com\",\"messages\":[\"msg 1\",\"msg 
2\",\"msg 3\"]}";
+
+        assertEquals(jsonString, StringEscapeUtils.unescapeJson(jsonString));
+    }
+
 }
\ No newline at end of file

Reply via email to