> I found out that this code > > public class Main { > public static void main(String[] args) { > String s = "Hello world!"; > char[] chars = s.toCharArray(); > int point = Character.codePointAt(chars, -1, 1); > } > } > > throws `ArrayIndexOutOfBoundsException` instead of JavaDoc-specified > `IndexOutOfBoundsException`: > > Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index -1 > out of bounds for length 12 > at java.base/java.lang.Character.codePointAtImpl(Character.java:9254) > at java.base/java.lang.Character.codePointAt(Character.java:9249) > at org.example.Main.main(Main.java:7) > > and the method doesn't check whether `index` parameter is negative: > > public static int codePointAt(char[] a, int index, int limit) { > if (index >= limit || limit < 0 || limit > a.length) { > throw new IndexOutOfBoundsException(); > } > return codePointAtImpl(a, index, limit); > } > > I suggest to check the `index` parameter explicitly instead of relying on > AIOOBE thrown from accessing the array with negative index.
Sergey Tsypanov has updated the pull request incrementally with one additional commit since the last revision: 8298033: Polish ------------- Changes: - all: https://git.openjdk.org/jdk/pull/11480/files - new: https://git.openjdk.org/jdk/pull/11480/files/9a40f08c..b4b6e897 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=11480&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11480&range=04-05 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jdk/pull/11480.diff Fetch: git fetch https://git.openjdk.org/jdk pull/11480/head:pull/11480 PR: https://git.openjdk.org/jdk/pull/11480