[
https://issues.apache.org/jira/browse/LANG-360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538664
]
Paul Benedict commented on LANG-360:
------------------------------------
What's ironic is that the current behavior is in perfect line with the javadoc:
"Appends the toString that would be produced by Object if a class did not
override toString itself. null will return null.
ObjectUtils.appendIdentityToString(*, null) = null"
Based on that, it's difficult to argue that the current behavior is incorrect.
Almost all of Commons Lang behavior returns null where possible for a null
source parameter.
I recommend keeping the current behavior, but adding a second method that
combines appendIdentityToString and defaultIfNull:
appendIdentityToString(StringBuffer buffer, Object object, Object defaultValue)
> Why does appendIdentityToString return null?
> --------------------------------------------
>
> Key: LANG-360
> URL: https://issues.apache.org/jira/browse/LANG-360
> Project: Commons Lang
> Issue Type: Bug
> Reporter: Jörg Gottschling
> Fix For: 2.4
>
>
> ObjectUtils is designed to handle null imputs gracefully. But
> ObjectUtils.appendIdentityToString does not. It returns null unnessecary if
> you pass null als second parameter (the object to get the identity from). For
> example appendIdentityToString(new StringBuffer(), null) will return null!
> Which is an uncommen behaviour. Think about code like this:
> ObjectUtils.appendIdentityToString(buffer, param1)
> .appendIdentityToString(buffer, param2)
> .appendIdentityToString(buffer, param3);
> This will cause an NPE if param1 or param2 ist null. There may be other code
> where a NPE will not happen, but the code is used for debugging and there
> will be an unexpected or wrong output.
> So you shoul return the StringBuffer which is passed in or a new one if null.
> The harder question is what to do with the object. I think we should append
> "null" to the StringBuffer, because this is what I would expect and what the
> passed reference is.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.