You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2018/05/10 12:08:12 UTC

[lang] LANG-1396 - JsonToStringStyle does not escape string names

Repository: commons-lang
Updated Branches:
  refs/heads/master e7d16c276 -> 3fadfdd69


LANG-1396 - JsonToStringStyle does not escape string names

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

Branch: refs/heads/master
Commit: 3fadfdd69f4682f05563ce53e55743f55813f488
Parents: e7d16c2
Author: Sebb <se...@apache.org>
Authored: Thu May 10 13:08:07 2018 +0100
Committer: Sebb <se...@apache.org>
Committed: Thu May 10 13:08:07 2018 +0100

----------------------------------------------------------------------
 src/changes/changes.xml                                         | 1 +
 .../java/org/apache/commons/lang3/builder/ToStringStyle.java    | 2 +-
 .../org/apache/commons/lang3/builder/JsonToStringStyleTest.java | 5 +++++
 3 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/3fadfdd6/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d83bf15..cdf2a05 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="3.8" date="2018-MM-DD" description="New features and bug fixes. Requires Java 7, supports Java 8, 9, 10.">
+    <action issue="LANG-1396" type="fix" dev="sebb">JsonToStringStyle does not escape string names</action>
     <action issue="LANG-1395" type="fix" dev="sebb" due=to="Jim Gan">JsonToStringStyle does not escape double quote in a string value</action>
     <action issue="LANG-1384" type="fix" dev="erans" due-to="Ian Young">New Java version ("11") must be handled</action>
     <action issue="LANG-1364" type="fix" dev="pschumacher" due-to="Zheng Xie">ExceptionUtils#getRootCause(Throwable t) should return t if no lower level cause exists</action>

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/3fadfdd6/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
index 097332f..ff10a81 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
@@ -2619,7 +2619,7 @@ public abstract class ToStringStyle implements Serializable {
                         "Field names are mandatory when using JsonToStringStyle");
             }
 
-            super.appendFieldStart(buffer, FIELD_NAME_QUOTE + fieldName
+            super.appendFieldStart(buffer, FIELD_NAME_QUOTE + StringEscapeUtils.escapeJson(fieldName)
                     + FIELD_NAME_QUOTE);
         }
 

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/3fadfdd6/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java b/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
index 82467cb..2ae391e 100644
--- a/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
+++ b/src/test/java/org/apache/commons/lang3/builder/JsonToStringStyleTest.java
@@ -387,6 +387,11 @@ public class JsonToStringStyleTest {
         assertEquals("{\"name\":\"Let's \\\"quote\\\" this\"}",new ToStringBuilder(base).append("name","Let's \"quote\" this").toString());
     }
 
+    @Test
+    public void testLANG1396() {
+        assertEquals("{\"Let's \\\"quote\\\" this\":\"value\"}",new ToStringBuilder(base).append("Let's \"quote\" this","value").toString());
+    }
+
     /**
      * An object with nested object structures used to test {@link ToStringStyle.JsonToStringStyle}.
      *