RFR: 8372359: Clean jpackage error messages
Alexey Semenyuk
asemenyuk at openjdk.org
Fri Nov 21 16:50:52 UTC 2025
Some jpackage error messages have "Error: " prefix. Some don't. The prefix is redundant as jpackage assembles the error message from the localized "Error: " prefix and localized message body [1]. The prefix was removed.
There are error messages specific to jpackage options that duplicate generic error messages. They are:
**ERR_BuildRootInvalid**
It duplicates a generic "error.parameter-not-empty-directory" error message.
| Specialized error message | Generic error message |
| --- | --- |
| Error: temp (foo) must be non-existent or empty directory | The value "foo" provided for parameter --temp is not an empty directory or non existent path |
**ERR_AppImageNotExist**
It duplicates a generic "error.parameter-not-directory" error message.
| Specialized error message | Generic error message |
| --- | --- |
| Error: App image directory "foo" does not exist | The value "foo" provided for parameter --app-image is not a directory |
**ERR_BothMainJarAndModule**
It duplicates a generic "ERR_MutuallyExclusiveOptions" error message.
| Specialized error message | Generic error message |
| --- | --- |
| Error: Cannot have both --main-jar and --module Options | Mutually exclusive options [--main-jar] and [--module] |
**ERR_NoAddLauncherName**
It duplicates a generic "error.parameter-add-launcher-malformed" error message.
| Specialized error message | Generic error message |
| --- | --- |
| Error: --add-launcher option requires a name and a file path (--add-launcher <name>=<file path>) | The value "foo" provided for parameter --add-launcher does not match the pattern <name>=<file path> |
Specialized error messages duplicating generic error messages were removed to simplify maintenance.
Also, ERR_MissingArgument is not referenced in the implementation, but mistakenly referenced in the tests. It was replaced with ERR_MissingArgument2, and ERR_MissingArgument was removed.
There are error messages that are not referenced in the code. They are:
| ID | Note |
| -------- | -------- |
| message.creating-association-with-null-extension | FA with null extensions are not supported starting from jdk25: https://github.com/openjdk/jdk/blob/8531fa146be1da5e96c0f23091882a27c67d7893/src/jdk.jpackage/share/classes/jdk/jpackage/internal/FileAssociationGroup.java#L93. https://github.com/openjdk/jdk21u/blob/485ced0d5b240d45640906a4a101ec94c18820ba/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java#L519 |
| error.must-sign-app-store | Latest referenced from [jdk16/MacAppStoreBundler.java](https://github.com/openjdk/jdk16/blob/4de3a6be9e60b9676f2199cd18eadb54a9d6e3fe/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppStoreBundler.java#L213). It was removed, the key is a leftover. |
| error.must-sign-app-store.advice | same as "error.must-sign-app-store" |
| message.ignoring.symlink | Last referenced from [jdk24u/MacAppImageBuilder.java](https://github.com/openjdk/jdk24u/blob/b42f146edb8324bbb164bb706e8ad39d60aaf25b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java#L817). The file was deleted in [JDK-8333664](https://bugs.openjdk.org/browse/JDK-8333664). |
| message.already.signed | Last refernced from [jdk16/MacAppImageBuilder.java](https://github.com/openjdk/jdk16/blob/4de3a6be9e60b9676f2199cd18eadb54a9d6e3fe/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppImageBuilder.java#L657). The reference was removed in [JDK-8248904](https://bugs.openjdk.org/browse/JDK-8248904). |
| message.running-script | Last refernced from [jdk14/MacDmgBundler.java](https://github.com/openjdk/jdk14/blob/abc56193174dd6a11a8453bd5036fc8618ecca61/src/jdk.incubator.jpackage/macosx/classes/jdk/incubator/jpackage/internal/MacDmgBundler.java#L70). The reference was removed in [JDK-8230652](https://bugs.openjdk.org/browse/JDK-8230652). |
| message.module-class | Last refernced from [jdk14/JLinkBundlerHelper.java](https://github.com/openjdk/jdk14/blob/abc56193174dd6a11a8453bd5036fc8618ecca61/src/jdk.incubator.jpackage/share/classes/jdk/incubator/jpackage/internal/JLinkBundlerHelper.java#L110). The reference was removed in [JDK-8246624](https://bugs.openjdk.org/browse/JDK-8246624). |
| resource.setup-icon | Referenced from [jfx11u/WinExeBundler.java](https://github.com/openjdk/jfx11u/blob/1bc63c025ce4c7fddba28755e7ddb3c2cb4018ec/modules/jdk.packager/src/main/java/com/oracle/tools/packager/windows/WinExeBundler.java#L667). Not referenced from any JDK repo. |
| message.invalid.install.dir | Was referenced from WixAppImageFragmentBuilder.java until [JDK-8333664](https://bugs.openjdk.org/browse/JDK-8333664). Duplicates "error.invalid-install-dir" referenced from [jdk/PackageBuilder](https://github.com/openjdk/jdk/blob/8531fa146be1da5e96c0f23091882a27c67d7893/src/jdk.jpackage/share/classes/jdk/jpackage/internal/PackageBuilder.java#L213). |
| resource.bundle-config-file | Found only in .property files accross all repos in the "openjdk" org. Was never referenced. |
Unreferenced error messages were removed.
Additionally, reworked ErrorTest to differentiate between error and advice messages in the jpackage output.
[1] https://github.com/openjdk/jdk/blob/5f806e7f8b66c14954a07005be3bceb2f812fbff/src/jdk.jpackage/share/classes/jdk/jpackage/internal/cli/Main.java#L176
-------------
Commit messages:
- Get rid of old error IDs
- *Resources.properties: remove unreferenced keys
- OptionsValidationFailTest.excludes: follow up for ErrorTest update
- ErrorTest: differentiate between errors and advices in the expected output
- Remove "Error: " prefix from error messages
Changes: https://git.openjdk.org/jdk/pull/28457/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28457&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8372359
Stats: 197 lines in 11 files changed: 30 ins; 44 del; 123 mod
Patch: https://git.openjdk.org/jdk/pull/28457.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/28457/head:pull/28457
PR: https://git.openjdk.org/jdk/pull/28457
More information about the core-libs-dev
mailing list