I've encountered bugs in production code due to this surprise. A good thing to fix.
> On Aug 16, 2014, at 1:38 AM, Jeremy Manson <jeremyman...@google.com> wrote: > > No love from core-libs-dev? It's backwards-incompatible, but in a way that > would unbreak existing broken code. Might be a worthwhile cleanup. > > Jeremy > > >> On Fri, Aug 8, 2014 at 1:53 PM, Eddie Aftandilian <eaf...@google.com> wrote: >> >> Hi all, >> >> We recently realized that calling new StringBuilder(char) does not do what >> you would think it does. Since there is no char constructor defined, the >> char is widened to an int and the StringBuffer is presized to the >> character's encoded value. Thus code like this prints an empty string >> rather than the expected "a": >> System.out.println(new StringBuilder('a')); >> >> Would it be possible to add a char constructor to StringBuilder to prevent >> this problem? I understand this would change the behavior of any code that >> is currently doing this, but it's hard to imagine anyone doing this >> intentionally. Of the ~20 instances we found in Google's codebase, all >> were bugs. What is your policy on making changes like this where (a) it >> will cause a change in behavior, but (b) the currently behavior is clearly >> wrong? >> >> If you're willing to take the change, I'd be happy to send a patch. >> >> Thanks, >> Eddie >>