RFR: JDK-8317308 JavaFX Developer build broken on Windows - NativeLibrary file contains invalid character ':'
John Neffenger
jgneff at openjdk.org
Fri Sep 29 17:47:33 UTC 2023
On Fri, 29 Sep 2023 10:40:52 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:
> The format of the timestamp has changed to ISO 8601. This contains the “:” Character.
> A copy of the dll is saved at <home>/.openjfx/cache/" + jfxVersion + "/" + arch .
> On Windows, the character ‘:’ is invalid in files, causing internal errors.
>
> This only happens on developer/non-hudson builds, because on hudson-builds, the timestamp is omitted.
>
> I just replaced the disallowed character when creating the native library.
I found it. The Java runtime version (`javafx.runtime.version`) is reconstructed again at runtime. The new ISO 8601 build timestamp causes the runtime to create an invalid version string. See the [static initializer](https://github.com/openjdk/jfx/blob/master/modules/javafx.base/src/main/version-info/VersionInfo.java#L127) in the `VersionInfo.java` file:
// The static initializer composes the VERSION and RUNTIME_VERSION strings
static {
String tmpVersion = RELEASE_VERSION;
// Construct the VERSION string adding milestone information,
// such as beta, if present.
// Note: RELEASE_SUFFIX is expected to be empty for fcs versions
tmpVersion += RELEASE_SUFFIX;
VERSION = tmpVersion;
// Append the RUNTIME_VERSION string that follow the VERSION string
tmpVersion += "+" + PROMOTED_BUILD_NUMBER;
if (getHudsonJobName().length() == 0) {
// Non hudson (developer) build
tmpVersion += "-" + BUILD_TIMESTAMP;
}
RUNTIME_VERSION = tmpVersion;
}
I missed that when I changed the build timestamp to use ISO 8601. The code shouldn't be writing one `java.runtime.version` to the properties file while using a different string at runtime. I can follow up by creating another bug report and pull request to fix this error at its source.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1251#issuecomment-1741236596
More information about the openjfx-dev
mailing list