Hi,

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.

-sherman

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





Reply via email to