commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Novozhilov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LANG-1452) MultilineRecursiveToStringStyle produces wrong output for BigDecimal
Date Wed, 24 Apr 2019 09:37:00 GMT
Aleksey Novozhilov created LANG-1452:
----------------------------------------

             Summary: MultilineRecursiveToStringStyle produces wrong output for BigDecimal
                 Key: LANG-1452
                 URL: https://issues.apache.org/jira/browse/LANG-1452
             Project: Commons Lang
          Issue Type: Bug
          Components: lang.builder.*
    Affects Versions: 3.7
            Reporter: Aleksey Novozhilov


Class has 2 BigDecimal fields:
{code:java}
BigDecimal biddecimal123 = new BigDecimal("123");
BigDecimal biddecimal456 = new BigDecimal("456");
{code}
MultilineRecursiveToStringStyle produces this output:
{quote}BDToString@36baf30c[
 biddecimal123=java.math.BigDecimal@7adf9f5f[
 intVal=<null>,
 scale=0
 ],
 biddecimal456=java.math.BigDecimal@63961c42[
 intVal=<null>,
 scale=0
 ]
 ]
{quote}
 

ToStringStyle.MULTI_LINE_STYLE doesn't have this problem. It was introduced with method
{code:java}
@Override
public void appendDetail(final StringBuffer buffer, final String fieldName, final Object value){code}
of MultilineRecursiveToStringStyle. It doesnt'n treat BigDecimal as a primitive type. So I
had to do the following to solve my issue:

 
{code:java}
class FixedMultilineRecursiveToStringStyle extends MultilineRecursiveToStringStyle{
    @Override
    public void appendDetail(StringBuffer buffer, String fieldName, Object value) {
        if (!BigDecimal.class.equals(value.getClass())){
            super.appendDetail(buffer, fieldName, value);
        } else {
            buffer.append(value);
        }
    }
}
{code}
 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message