RFR [XXS] 8130778: (str) Make AbstractStringBuilder.append(CharSequence, int, int) to throw StringIndexOutOfBoundsException

Xueming Shen xueming.shen at oracle.com
Sat Jul 11 17:22:47 UTC 2015


Arguably the "StringIndexOutOfBoundsException" should only be used when the index is out
of a "String" (the builder included) boundary, but the offending object and the index here is
CharSequence/index. The places that throw StringIndexoutOfBoundsException are all for the
index/offset/length of the ASB.


On 07/08/2015 10:02 AM, Ivan Gerasimov wrote:
> Resending the request with a new bug id.
> On 07.07.2015 15:55, Ivan Gerasimov wrote:
>> Hi!
>> With the fix for JDK-8077242 ((str) Optimize AbstractStringBuilder.append(CharSequence, int, int) for String argument) a change in behavior was introduced.
>> In the places, where sb.append(str.substring(from, to)) used to be called, in the case of wrong indices StringIndexOutOfBoundsException was thrown.
>> Now, after I replaced the code to sb.append(str, from, to), in such cases IndexOutOfBoundsException is thrown.
>> The proposal is to make AbstractStringBuilder.append(CharSequence, int, int) throw more specific StringIndexOutOfBoundsException, which
>> 1) will eliminate the regression,
>> 2) will be more consistent with most other methods of AbstractStringBuilder, which throw StringIndexOutOfBoundsException.
>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8130646
>> WEBREV: http://cr.openjdk.java.net/~igerasim/8130646/00/webrev/
>> Sincerely yours,
>> Ivan

More information about the core-libs-dev mailing list