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