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