[ 
https://issues.apache.org/jira/browse/LANG-1542?focusedWorklogId=434053&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-434053
 ]

ASF GitHub Bot logged work on LANG-1542:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 16/May/20 11:08
            Start Date: 16/May/20 11:08
    Worklog Time Spent: 10m 
      Work Description: swarajsaaj commented on a change in pull request #530:
URL: https://github.com/apache/commons-lang/pull/530#discussion_r426143710



##########
File path: src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
##########
@@ -635,6 +635,14 @@ protected void appendDetail(final StringBuffer buffer, 
final String fieldName, f
      *  {@code toString}, not {@code null}
      */
     protected void appendDetail(final StringBuffer buffer, final String 
fieldName, final Collection<?> coll) {
+        if (coll != null && !coll.isEmpty()) {
+            coll.stream().findFirst()
+                    .map(Object::getClass)
+                    .filter(Class::isEnum)

Review comment:
       Hello, this will restrict only enums to be appended from a collection, a 
list of other types (e.g. Collection of Integers or Strings) will be ignored. 
This filter should be removed to allow all types of collections (or we should 
allow buffer.append(col1) at last line of method to run for other types, either 
way)




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 434053)
    Time Spent: 40m  (was: 0.5h)

> ToStringBuilder.reflectionToString - Wrong JSON format when object has a List 
> of Enum
> -------------------------------------------------------------------------------------
>
>                 Key: LANG-1542
>                 URL: https://issues.apache.org/jira/browse/LANG-1542
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>    Affects Versions: 3.10
>         Environment: Open JDK 1.8
>            Reporter: Trần Ngọc Khoa
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> I'm trying to log an object to console with JSON style using 
> {{ToStringBuilder.reflectionToString}} from {{commons-lang3:3.10}} but it 
> seems generated a wrong JSON format.
> Problem happening when I have a list of enums in my field list.
>  
> {code:java}
> This is the class:
>      public class Person {
>      private long id;
>      private String name;
>      private List<MyEnum> listEnums;
>     //getter and setter
>     public String toString(){
>      return ToStringBuilder.reflectionToString(this, 
> ToStringStyle.JSON_STYLE); 
>     }
> }
> {code}
>   
> And {{MyEnum}}:
> {code:java}
>  public enum MyEnum {
>      FOOD,
>      SPORT,
>      BOOK,
>      MUSIC
>  }{code}
> When I call {{toString()}} of Person object. It shows like this
> {code:java}
>  {
>      "id": 1,
>      "name": "Karl",
>      "listEnums": [FRIDAY, MONDAY, TUESDAY]
>  }{code}
>   
> What I expected is:
> {code:java}
>  {
>      "id": 1,
>      "name": "Karl",
>      "listEnums": ["FRIDAY", "MONDAY", "TUESDAY"]
>  }{code}
>   



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to