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
