RFR: 6206780 (str) Forwarding append methods in String{Buffer, Builder} are inconsistent
Jim Gish
jim.gish at oracle.com
Wed Sep 26 17:22:25 UTC 2012
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