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