RFR: 8268698: Use Objects.check{Index, FromToIndex, FromIndexSize} where possible
Alan Bateman
alanb at openjdk.java.net
Thu Jun 17 10:28:15 UTC 2021
On Wed, 16 Jun 2021 08:08:47 GMT, Yi Yang <yyang at openjdk.org> wrote:
> After JDK-8265518(#3615), it's possible to replace all variants of checkIndex by Objects.checkIndex/Objects.checkFromToIndex/Objects.checkFromIndexSize in the whole JDK codebase.
I looked through the changes in java.base and only spotted one case where a different (and more specific) exception is thrown.
The changes to to files in java.util.zip lead to annoying long lines so would be good to fix all those.
src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 471:
> 469: */
> 470: public int offsetByCodePoints(int index, int codePointOffset) {
> 471: checkOffset(index, count);
String.offsetByCodePoints is specified to throw IOOBE. checkOffset may throw the more specific StringIndexOutOfBoundsException. That's a compatible change but I worry that we might want to throw the less specific exception in the further because code. I only mention is because there have been cases in java.lang where IOOBE was specified and AIOOBE by the implementation and it has been problematic to touch the implementation as a result.
src/java.base/share/classes/java/util/Base64.java line 934:
> 932: if (closed)
> 933: throw new IOException("Stream is closed");
> 934: Preconditions.checkFromIndexSize(len, off, b.length, (xa, xb) -> new ArrayIndexOutOfBoundsException());
You might to split this really long line to avoid inconsistent line length in this source file.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4507
More information about the security-dev
mailing list