Repository: commons-text Updated Branches: refs/heads/master f370438c6 -> 280bccb53
TEXT-120: StringEscapeUtils#unescapeJson does not unescape double quotes and forward slash Revert changes for "TEXT-100: StringEscapeUtils#UnEscapeJson doesn't recognize escape signs correctly" Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/280bccb5 Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/280bccb5 Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/280bccb5 Branch: refs/heads/master Commit: 280bccb53a5297c588a73f55d77b0938e5d86d9e Parents: f370438 Author: Pascal Schumacher <pascalschumac...@gmx.net> Authored: Thu May 17 20:34:28 2018 +0200 Committer: Pascal Schumacher <pascalschumac...@gmx.net> Committed: Thu May 17 20:34:28 2018 +0200 ---------------------------------------------------------------------- src/changes/changes.xml | 1 + .../apache/commons/text/StringEscapeUtils.java | 9 +-------- .../commons/text/StringEscapeUtilsTest.java | 18 +++++------------- 3 files changed, 7 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-text/blob/280bccb5/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index d97ead2..932c131 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -46,6 +46,7 @@ The <action> type attribute can be add,update,fix,remove. <body> <release version="1.4" date="2018-MM-DD" description="Release 1.4"> + <action issue="TEXT-120" type="fix" dev="pschumacher">StringEscapeUtils#unescapeJson does not unescape double quotes and forward slash</action> <action issue="TEXT-119" type="fix" dev="pschumacher">Remove mention of SQL escaping from user guide</action> <action issue="TEXT-121" type="update" dev="ggregory" due-to="pschumacher">Update Java requirement from version 7 to 8.</action> <action issue="TEXT-122" type="update" dev="ggregory">Allow full customization with new API org.apache.commons.text.lookup.StringLookupFactory.interpolatorStringLookup(Map<String, StringLookup>, StringLookup, boolean).</action> http://git-wip-us.apache.org/repos/asf/commons-text/blob/280bccb5/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 cd15a8a..3ac66ff 100644 --- a/src/main/java/org/apache/commons/text/StringEscapeUtils.java +++ b/src/main/java/org/apache/commons/text/StringEscapeUtils.java @@ -302,14 +302,7 @@ 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; - static { - UNESCAPE_JSON = new AggregateTranslator( - new OctalUnescaper(), // .between('\1', '\377'), - new UnicodeUnescaper(), - new LookupTranslator(EntityArrays.JAVA_CTRL_CHARS_UNESCAPE) - ); - } + public static final CharSequenceTranslator UNESCAPE_JSON = UNESCAPE_JAVA; /** * Translator object for unescaping escaped HTML 3.0. http://git-wip-us.apache.org/repos/asf/commons-text/blob/280bccb5/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 5b127ab..e1e10f6 100644 --- a/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java +++ b/src/test/java/org/apache/commons/text/StringEscapeUtilsTest.java @@ -626,19 +626,11 @@ public class StringEscapeUtilsTest { assertEquals(jsonString, StringEscapeUtils.unescapeJson(jsonString)); } - @Test - public void testUnescapeJsonFoundBug_Issue_Text_100() { - final String jsonString = - "{\"age\":100,\"name\":\"m\\\"kyong.com\",\"messages\":[\"msg 1\",\"msg 2\",\"msg 3\"]}"; - - assertEquals(jsonString, StringEscapeUtils.unescapeJson(jsonString)); - } + @Test // TEXT-120 + public void testUnescapeJsonDoubleQuoteAndForwardSlash() { + String escapedJsonString = "double quote: \\\" and a forward slash: \\/"; + String jsonString = "double quote: \" and a forward slash: /"; - @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)); + assertEquals(jsonString, StringEscapeUtils.unescapeJson(escapedJsonString)); } }