On Fri, 6 Dec 2024 15:44:39 GMT, Severin Gehwolf <sgehw...@openjdk.org> wrote:

> Please review this fix for JEP 493 enabled JDKs related to the 
> `--limit-modules` option. The existing jlink `bindservices` tests cover this 
> issue. Previously they didn't run on a JEP 493 enabled JDK, since `jmods` 
> folder is missing for them.
> 
> The gist of the issue is that multiple `ModuleFinder`s were at play. In 
> particular, when linking from the run-time image a finder is being set up 
> based solely on the module-path. Which in that case only contains the 
> application modules (not the JDK dependencies). So if the `--limit-modules` 
> clause included any JDK modules that the app needs as a dependency the finder 
> would fail because the module specified in the `--limit-modules` clause 
> didn't exist in the finder's look-up space.
> 
> [A similar case 
> happens](https://bugs.openjdk.org/browse/JDK-8345573?focusedId=14729247&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14729247)
>  for a regular JDK build where `ALL-MODULE-PATH` is being used together with 
> `--limit-modules`. In that case, the `FindException` is being thrown when the 
> `root` set of modules are attempted to get assembled.
> 
> The fix that I'm proposing here is two fold:
> 
> 1. Distinguish whether or not we ought to resolve the JDK modules from the 
> run-time image or not.
> 2. Based on that information set up the finders as appropriate and use the 
> same finders when assembling the module root set.
> 
> I think this makes for a cleaner implementation and also fixes the 
> `--limit-modules` issue when linking from the run-time image as any finder 
> that is being limited has already been properly set up to include 
> dependencies (if need be).
> 
> Testing:
> 
> - [x]  GHA
> - [x] jlink tests in `test/jdk/tools/jlink` on a regular JDK build and on a 
> build with `--enable-linkable-runtime`. Both test runs show all tests passing.
> 
> Thoughts?

This pull request has now been integrated.

Changeset: 11cd6398
Author:    Severin Gehwolf <sgehw...@openjdk.org>
URL:       
https://git.openjdk.org/jdk/commit/11cd639842b61952755ad83e88446c91237c19f5
Stats:     290 lines in 5 files changed: 90 ins; 106 del; 94 mod

8345573: Module dependencies not resolved from run-time image when 
--limit-module is being used

Reviewed-by: mchung

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

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

Reply via email to