new StringBuilder(char)

Andrew Thompson lordpixel at
Sat Aug 16 12:38:59 UTC 2014

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 <jeremymanson at> 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 <eaftan at> 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

More information about the core-libs-dev mailing list