[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