The ReleaseInfoPlugin part of jlink uses this code when reading from a file via "--release-info /path/to/file" option:
// --release-info <file>
Properties props = new Properties();
try (FileInputStream fis = new FileInputStream(operation)) {
props.load(fis);
} catch (IOException exp) {
throw new UncheckedIOException(exp);
}
props.forEach((k, v) -> release.put(k.toString(), v.toString()));
In other words, the input file when the release-info plugin runs is in UTF-8 (seeJDK-8301971), while the Properties.load(InputStream) API assumes the input stream to be in ISO-8859-1.
This would be visible on a build with non-ASCII characters in the vendor string when building the JDK:
$ configure --with-vendor-name='ößäakl foo'
$ make images
It's best to use Properties.load(Reader) API instead to avoid this.
// --release-info <file>
Properties props = new Properties();
try (FileInputStream fis = new FileInputStream(operation)) {
props.load(fis);
} catch (IOException exp) {
throw new UncheckedIOException(exp);
}
props.forEach((k, v) -> release.put(k.toString(), v.toString()));
In other words, the input file when the release-info plugin runs is in UTF-8 (see
This would be visible on a build with non-ASCII characters in the vendor string when building the JDK:
$ configure --with-vendor-name='ößäakl foo'
$ make images
It's best to use Properties.load(Reader) API instead to avoid this.
- links to
-
Review(master)
openjdk/jdk/28399