new StringBuilder(char)

Jeremy Manson jeremymanson at google.com
Mon Aug 18 20:10:20 UTC 2014


Is there a bug?

Jeremy


On Mon, Aug 18, 2014 at 12:02 PM, Mike Duigou <mike.duigou at oracle.com>
wrote:

>
> 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