RFR: 8371076: jpackage will wrongly overwrite the plist file in the embedded runtime when executed with the "--app-image" option [v2]
Alexander Matveev
almatvee at openjdk.org
Sat Nov 1 01:08:05 UTC 2025
On Fri, 31 Oct 2025 21:55:27 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:
>> - Fix MacPackagingPipeline.
>> - Fix AppImageSigner: this is the follow-up for MacPackagingPipeline fix. Without fixing AppImageSigner AppImagePackageTest.testEmpty test fails. It happened that the test passed because jpackage wrongly created the plist file for the embedded runtime in the case of the predefined app image. The test passed because of the bug in jpackage fixed in this PR.
>> - Add test cases for predefined app image packaging to the CustomInfoPListTest test. They had been failing before MacPackagingPipeline was fixed.
>>
>> Supplementary changes:
>> - Get rid of duplicated `createInputRuntimeImage()` and `createRuntimeBundle()` functions.
>> - Improve `MacHelper.writeFaPListFragment()` to work with a predefined app image.
>> - Add optional tracing to the packaging pipeline (turned off by default, must edit static fields to enable in custom builds).
>> - PListReader: add find methods that return an Optional instead of throwing an exception when the requested key is not found; update unit tests.
>
> Alexey Semenyuk has updated the pull request incrementally with two additional commits since the last revision:
>
> - CustomInfoPListTest: use Slot class
> - Add Slot utility class
src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/PListReader.java line 211:
> 209: switch (node.getNodeName()) {
> 210: case "true", "false" -> {
> 211: return true;
Confused. Looks like this code will return `true` even if value is `false`. You can use `return Boolean.parseBoolean(node.getNodeName())`. No need for switch in this case.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28089#discussion_r2483021792
More information about the core-libs-dev
mailing list