RFR: 8311302: Allow for jlinking a custom runtime without packaged modules being present [v10]

Severin Gehwolf sgehwolf at openjdk.org
Mon Dec 4 19:09:02 UTC 2023


On Tue, 28 Nov 2023 21:46:58 GMT, Mandy Chung <mchung at openjdk.org> wrote:

>> Severin Gehwolf has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Tighten ModifiedFilesExitTest
>>   
>>   Ensure the error message is reasonable and doesn't include
>>   Exceptions presented to the user.
>
> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AddRunImageResourcesPlugin.java line 67:
> 
>> 65:     // RunImageArchive for further processing.
>> 66:     private static final String RESPATH = RESPATH_PREFIX + "%s_resources";
>> 67:     private static final String JLINK_MOD_NAME = "jdk.jlink";
> 
> There are 2 other occurrences of "jdk.jlink".  I guess you plan to replace them with the constant variable?

I think I've replaced them in the latest update.

> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AddRunImageResourcesPlugin.java line 116:
> 
>> 114:         if (platform == null) {
>> 115:             throw new IllegalStateException("java.base not part of the image?");
>> 116:         }
> 
> Can simply use `orElseThrow`.  It should not reach here and so it's ok to use InternalError or AssertionError (which is also used in this code).
> 
> Suggestion:
> 
>         String platform = in.moduleView().findModule("java.base")
>                 .map(ResourcePoolModule::targetPlatform)
>                 .orElseThrow(() -> new AssertionError("java.base not found"));

Done.

> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AddRunImageResourcesPlugin.java line 121:
> 
>> 119: 
>> 120:     private void addModuleResourceEntries(ResourcePoolBuilder out) {
>> 121:         for (String module: keysInSortedOrder()) {
> 
> Suggestion:
> 
>               nonClassResEntries.keySet().stream().sorted().forEach(module -> {
> 
> 
> `keysInSortedOrder` can be removed.

removed.

> src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/AddRunImageResourcesPlugin.java line 126:
> 
>> 124:             if (mResources == null) {
>> 125:                 throw new AssertionError("Module listed, but no resources?");
>> 126:             }
> 
> Since it is always non-null, this check can be dropped.  NPE will be thrown if such bug exists.

I've replaced this with `Object.requireNonNull()`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1414357943
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1414358486
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1414359291
PR Review Comment: https://git.openjdk.org/jdk/pull/14787#discussion_r1414359118


More information about the core-libs-dev mailing list