Please review this cleanup PR which updates code and tests in `java.base` to 
consistently use  `jdk.internal.util.ArraySupport.SOFT_MAX_ARRAY_LENGTH` when 
referring to the JVM's maximum array size implementation limit. Currently, 
instances of `Integer.MAX_VALUE - 8` are found across the code base, with 
varying degrees of documentation. It would be good to consolidate on a single 
source of truth, with proper documentation.

This PR is a follow-up to #20905 where the same change was requested in 
`java.util.zip`.

My understanding is that javac will fold this constant value into the byte code 
of the compiled use sites, as such this change should not affect class loading 
or cause startup issues. 

Instances selected for this PR were found searching for "Integer.MAX_VALUE - 
8". The PR replaces these with `ArraySupport.SOFT_MAX_ARRAY_LENGTH`, while 
trimming or amending some code comments where appropriate. 
(`SOFT_MAX_ARRAY_LENGTH` already has a good explainer which does not need 
repetition at each use site).

I also searched for instances of `Integer.MAX_VALUE - 1` and `Integer.MAX_VALUE 
- 2`, no convincing candidates were found.

Instances outside `java.base` were deliberately left out to limit the scope and 
review cost of this PR.

Tests updated to use `SOFT_MAX_ARRAY_LENGTH` are updated with the jtreg tag 
`@modules java.base/jdk.internal.util`.

Testing: No new tests are added in this PR, the `noreg-cleanup` label is added 
to the JBS. The five affected tests have been run manually. GHA tests run green.

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

Commit messages:
 - Add @modules jtreg tag to XcodeOverflow test, required to use 
ArraysSupport.SOFT_MAX_ARRAY_LENGTH
 - Consolidate and use ArraysSupport.SOFT_MAX_ARRAY_LENGTH in place of 
Integer.MAX_VALUE - 8

Changes: https://git.openjdk.org/jdk/pull/21268/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21268&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8341243
  Stats: 64 lines in 15 files changed: 23 ins; 9 del; 32 mod
  Patch: https://git.openjdk.org/jdk/pull/21268.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21268/head:pull/21268

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

Reply via email to