On Sat, 3 Dec 2022 18:40:59 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:

>> test/jdk/java/lang/Character/Supplementary.java line 808:
>> 
>>> 806:                 return;
>>> 807:             }
>>> 808:             if (expectedException.isInstance(e)) { // 
>>> Character.codePointBefore() throws
>> 
>> The test should fail without the fix, but this fall-through allows the test 
>> to pass.
>> 
>> The qualification added for `isAt` is hiding a second/corresponding bug in 
>> `codePointBefore` where the index is not checked and an 
>> ArrayIndexOutOfBounds occurs at codePointBeforeImpl: 9488.
>
> Yeah, this AIOOBE is exactly the reason why I added this. So should we modify 
> `codePointBefore` in the same way as `codePointAt`?

I'm asking because counter-intuitively `codePointBefore ` doesn't specify IOOBE 
for negative `index`.

/**
 * @return the Unicode code point value before the given index.
 * @throws NullPointerException if {@code a} is null.
 * @throws IndexOutOfBoundsException if the {@code index}
 * argument is not greater than the {@code start} argument or
 * is greater than the length of the {@code char} array, or
 * if the {@code start} argument is negative or not less than
 * the length of the {@code char} array.
 * @since  1.5
 */
 ```

-------------

PR: https://git.openjdk.org/jdk/pull/11480

Reply via email to