You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by pa...@apache.org on 2018/05/17 18:34:35 UTC

[text] TEXT-120: StringEscapeUtils#unescapeJson does not unescape double quotes and forward slash

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 <pa...@gmx.net>
Authored: Thu May 17 20:34:28 2018 +0200
Committer: Pascal Schumacher <pa...@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&lt;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));
     }
 }