new StringBuilder(char)
Mike Duigou
mike.duigou at oracle.com
Mon Aug 18 19:02:33 UTC 2014
On Aug 15 2014, at 22:38 , Jeremy Manson <jeremymanson at google.com> wrote:
> No love from core-libs-dev?
Pavel has been looking into this and doing corpus and historical bug checks. It seems possible that we might consider fixing it as it does seem to be an ongoing source of errors.
Mike
> 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 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
>>
More information about the core-libs-dev
mailing list