On 25/10/2009, Henri Yandell <flame...@gmail.com> wrote: > 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. >
Unfortunately StringBuilder & StringBuffer don't have a common accessible parent. [Seems like a design fault to me] Rather than swallowing the Exception, why not convert the IOException to an unchecked Exception? (and document the restriction) The only reason for using Appendable is to support StringBuilder/Buffer, so if it is used with any other Appendable classes, let the user beware. > Hen > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org