As noted in https://bugs.openjdk.org/browse/JDK-8386802, `Util.entryList` and 
`Util.moduleEntryList` copy their input lists using indexed access. This is 
fine for `RandomAccess` lists but can be inefficient for sequentially-accessed 
implementations.

This patch keeps the existing indexed path for `RandomAccess` lists and falls 
back to iteration otherwise. Regression coverage is added for 
non-`RandomAccess` inputs.

Testing:
- `make CONF_CHECK=ignore java.base-java images`
- `make CONF_CHECK=ignore test-only TEST="test/jdk/jdk/classfile/UtilTest.java"`
- `make CONF_CHECK=ignore test-only TEST="test/jdk/jdk/classfile"`
- `make CONF_CHECK=ignore test-only TEST="test/jdk:tier1" 
JTREG="VERBOSE=summary"`

---------
- [x] I confirm that I make this contribution in accordance with the [OpenJDK 
Interim AI Policy](https://openjdk.org/legal/ai).

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

Commit messages:
 - 8386802: ClassFile Util.entryList should consider non-RandomAccess lists

Changes: https://git.openjdk.org/jdk/pull/31719/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=31719&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8386802
  Stats: 84 lines in 2 files changed: 73 ins; 2 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/31719.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/31719/head:pull/31719

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

Reply via email to