RFR: 8357404: jpackage should attempt to get a package version from the JDK's release file if the --version option is not specified [v6]

Alexey Semenyuk asemenyuk at openjdk.org
Mon Feb 2 20:02:38 UTC 2026


On Sun, 18 Jan 2026 05:17:40 GMT, Alexander Matveev <almatvee at openjdk.org> wrote:

>> - Version will be read from JDK's release file if not provided via `--version` for runtime installer.
>> - Added test to cover added functionality.
>> - On macOS and Windows version from JDK's release file will be normalized if it does not fit platform requirements.
>
> Alexander Matveev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8357404: jpackage should attempt to get a package version from the JDK's release file if the --version option is not specified [v6]

src/jdk.jpackage/share/classes/jdk/jpackage/internal/util/RuntimeVersionReader.java line 38:

> 36: 
> 37:     public static Optional<String> readVersion(Path releaseFilePath) throws IOException {
> 38:         if (!Files.isRegularFile(releaseFilePath)) {

What is the point of this check? If you remove it and let the function throw an IOException, the function signature can be simplified to `String readVersion(Path releaseFilePath) throws IOException`. Making it clear that the function either returns a valid JDK version or throws.

If you don't want to deal with handling exceptions in the caller, you can implement it without throwing:

Optional<String> readVersion(Path releaseFilePath) {
    try {
        ...
        return Optional.of(version);
    } catch (IOException ex) {
        return Optional.empty();
    }
}

Currently, it is a confusing mix of both approaches.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29260#discussion_r2755960178


More information about the core-libs-dev mailing list