On Thu, 7 Apr 2022 22:44:19 GMT, Ioi Lam <ik...@openjdk.org> wrote: > During `java -Xshare:dump`, `ClassLoaders.bootLoader().resourceCache` is > usually null. However, if a signed class is loaded, `resourceCache` will > point to a `java.lang.ref.SoftReference`. Although rare (we have never seen > this during our testing), it's possible for `resourceCache.discovered` to > directly or indirectly point to another `Reference` which may contain an > object that cannot be archived. > > The fix is simple: reset the `resourceCache` field of all three archived > ClassLoader objects (boot/platform/app). > > I cannot reproduce the problem and I am unable to write a deterministic test > case. However, the bug reporter has tested my preliminary patch and is no > longer able to reproduce the failure. > > Please see the bug report > [JDK-8284336](https://bugs.openjdk.java.net/browse/JDK-8284336) for detailed > analysis and traces.
This pull request has now been integrated. Changeset: 662320a0 Author: Ioi Lam <ik...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/662320a0ec0b373fa1e4df9281224e9bdbdf76ac Stats: 28 lines in 5 files changed: 25 ins; 0 del; 3 mod 8284336: CDS SignedJar.java test fails due to archived Reference object Reviewed-by: alanb, ccheung ------------- PR: https://git.openjdk.java.net/jdk/pull/8151