[jdk21u-dev] RFR: 8315130: java.lang.IllegalAccessError when processing classlist to create CDS archive [v3]
Goetz Lindenmaier
goetz at openjdk.org
Thu Sep 11 08:19:08 UTC 2025
On Fri, 5 Sep 2025 10:55:28 GMT, Timofei Pushkin <tpushkin at openjdk.org> wrote:
>> Fixes a error which significantly complicates the use of static CDS in some applications with user-provided class loaders (workarounds require either manually editing the generated CDS classlist which is error-prone, or switching to dynamic CDS which has its own implications, or rewriting the application which is not always possible).
>>
>> The conflicts were trivial: a few neighboring methods missing from this version and not directly related to the change.
>>
>> The PR depends on #1833 and #1834 though it can be rewritten not to if needed.
>>
>> Testing besides the CI (performed on macos/arm64): `runtime/cds`, a minimal reproducer app described in the original bug report.
>
> Timofei Pushkin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>
> - Merge remote-tracking branch 'openjdk-jdk21/master' into appcds-bug-3
> - 8315130: java.lang.IllegalAccessError when processing classlist to create CDS archive
>
> Reviewed-by: iklam, ccheung
> - 8348240: Remove SystemDictionaryShared::lookup_super_for_unregistered_class()
>
> Reviewed-by: ccheung, coleenp
> - 8339460: CDS error when module is located in a directory with space in the name
>
> Reviewed-by: ccheung, iklam
Hi, it is runtime/cds/appcds/customLoader/RegUnregSuperTest.java#unreg
It's probably not included in tier1 which is run by the CI.
The CI is only a very basic smoke test.
[1.173s][info][cds] string table array (single level) length = 7992
[1.486s][info][cds] Skipping jdk/internal/misc/CDS$UnregisteredClassLoader$Source: used only when dumping CDS archive
[1.486s][info][cds] Skipping jdk/internal/misc/CDS$UnregisteredClassLoader$JarSource: used only when dumping CDS archive
[1.486s][info][cds] Skipping jdk/internal/misc/CDS$UnregisteredClassLoader: used only when dumping CDS archive
[1.487s][warning][cds] Skipping java/lang/invoke/BoundMethodHandle$Species_LI: Unsupported location
[1.490s][info ][cds] Gathering all archivable objects ...
[1.490s][info ][cds] Gathering classes and symbols ...
[1.709s][info ][cds] Sorting symbols and fixing identity hash ...
[1.715s][info ][cds] Sorting classes ...
-------------
PR Comment: https://git.openjdk.org/jdk21u-dev/pull/1835#issuecomment-3279105844
More information about the jdk-updates-dev
mailing list