RFR: 6206780 (str) Forwarding append methods in String{Buffer, Builder} are inconsistent
Jim Gish
jim.gish at oracle.com
Fri Sep 28 18:09:24 UTC 2012
Please review the changes described below. Again, at
http://cr.openjdk.java.net/~jgish/Bug6206780-sb-append-forward/
<http://cr.openjdk.java.net/%7Ejgish/Bug6206780-sb-append-forward/>
Thanks,
Jim
On 09/26/2012 01:22 PM, Jim Gish wrote:
>
> On 09/26/2012 06:12 AM, Chris Hegarty wrote:
>> Hi Jim,
>>
>> This is a nice cleanup, and certainly makes builder and buffer more
>> consistent.
>>
>> Some specific comments:
>> - StringBuilder
>> Why the change to the public doc for append(StringBuffer)? It
>> looks wrong to me. It is now taking about the wrong given type. \
> accident - fixed.
>>
>> - Trivially, the year in the header of the tests is incorrect
> Fixed
>>
>> - StringBuffer
>> I don't see that any of the new synchronized blocks are necessary.
>> If ASB is doing exactly the same as the previous buffer code, then
>> it will invoke the overridden subclass methods that are already
>> synchronized.
>>
> Good catch. I verified this, and you're absolutely right. Fixed.
>
> Thanks. I'll re-spin the patch and send it your way for pushing, if
> you would be so kind, please.
>
> Cheers,
> Jim
>
>> -Chris.
>>
>> On 25/09/2012 23:03, Jim Gish wrote:
>>> Please review the change at
>>> http://cr.openjdk.java.net/~jgish/Bug6206780-sb-append-forward
>>>
>>> Overview --
>>>
>>> * introduced consistent forwarding to AbstractStringBuilder from
>>> StringBuffer and StringBuilder for append and other methods per the
>>> bug report.
>>> * Added missing @Override annotations.
>>> * Got rid of knowledge of the sub-classes from ASB (smelled too bad to
>>> leave in).
>>> * Retained all methods to maintain compatibility (even though some
>>> like append(StringBuffer) could go away because append(CharSequence)
>>> would do).
>>> * To further maintain compatibility, used sychronized(this) in place
>>> of adding synchronized methods to those methods in StringBuffer that
>>> now need it (because of type-based dispatch being done in super
>>> rather than in /both/ StringBuffer and StringBuilder with
>>> CharSequence args).
>>> * Ensured that StringBuffer.append(StringBuilder) and
>>> StringBuilder.append(StringBuffer) are both handled properly.
>>>
>>>
>>> Thanks,
>>> Jim
>>>
>
--
Jim Gish | Consulting Member of Technical Staff | +1.781.442.0304
Oracle Java Platform Group | Core Libraries Team
35 Network Drive
Burlington, MA 01803
jim.gish at oracle.com
More information about the core-libs-dev
mailing list