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)