> For two cases: > > 1. When the ImageReaderFactory was loaded by local jdk,that means the > ImageReaderFactory was loaded by boot class loader,then init the `Path > BOOT_MODULES_JIMAGE` by using `sun.nio.fs.DefaultFileSystemProvider` which is > obtained through reflection,due to it is in jdk internal. > 2. When loaded by a target jdk, such as jdk8 runtime, then use the Java 8 > compatible APIs: `FileSystems.getDefault()` to init the `BOOT_MODULES_JIMAGE` > field. > Then we can avoid the circular dependencies in class loading caused by > loading the defaultSystemProvider.
liyazzi has updated the pull request incrementally with one additional commit since the last revision: add test case in test/jdk/java/nio/file/spi/SetDefaultProvider.java as the test of this issue ------------- Changes: - all: https://git.openjdk.org/jdk/pull/22628/files - new: https://git.openjdk.org/jdk/pull/22628/files/c29c6f03..e3c336c7 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=22628&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22628&range=04-05 Stats: 499 lines in 5 files changed: 200 ins; 297 del; 2 mod Patch: https://git.openjdk.org/jdk/pull/22628.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22628/head:pull/22628 PR: https://git.openjdk.org/jdk/pull/22628