RFR [XXS] 8130778: (str) Make AbstractStringBuilder.append(CharSequence, int, int) to throw StringIndexOutOfBoundsException
ivan.gerasimov at oracle.com
Thu Jul 9 17:58:05 UTC 2015
What about this variant?
So, we'll throw SOOB only if the CharSequence is actually a String.
I've also added the same code to insert(int,CharSequence,int,int) for
the sake of symmetry.
On 11.07.2015 20:22, Xueming Shen wrote:
> 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:
>>> 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,
More information about the core-libs-dev