On Sat, Oct 24, 2009 at 4:05 AM, Stephen Colebourne
<scolebou...@btopenworld.com> wrote:
> bay...@apache.org wrote:
>>
>> URL: http://svn.apache.org/viewvc?rev=826960&view=rev
>> Log:
>> Moved identityToString(StringBuffer, Object) to
>> identityToString(Appendable, Object) per LANG-542
>> @@ -178,13 +178,17 @@
>>      * @param object  the object to create a toString for
>>      * @since 2.4
>>      */
>> -    public static void identityToString(StringBuffer buffer, Object
>> object) {
>> +    public static void identityToString(Appendable buffer, Object object)
>> {
>>         if (object == null) {
>>             throw new NullPointerException("Cannot get the toString of a
>> null identity");
>>         }
>> -        buffer.append(object.getClass().getName())
>> -              .append('@')
>> -
>>  .append(Integer.toHexString(System.identityHashCode(object)));
>> +        try {
>> +            buffer.append(object.getClass().getName())
>> +                  .append('@')
>> +
>>  .append(Integer.toHexString(System.identityHashCode(object)));
>> +        } catch(java.io.IOException ioe) {
>> +            // can't happen - Appendable API forces it upon us
>> +        }
>>     }
>
> This change is invalid.
>
> IO classes such as Writer implement Appendable, and appending to those can
> throw an IOException.

Yup.  I remember telling myself it was fine because we passed a
StringBuilder in so the IOException wouldn't happen.... 'cept that's
only if someone calls identityToString(Object) :)

I've rolled back the change for now. I don't like IOException being
added to the API. I'm tempted by the somewhat lame solution of a
private Appendable method, and explicitly supporting StringBuffer,
StringBuilder and StrBuilder.

Hen

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to