On Fri, 28 Jul 2023 09:11:07 GMT, Jose Pereda <jper...@openjdk.org> wrote:
> This PR adds a file lock to the cache directory, allowing access from > multiple processes (that is, from more than one JVM) to that directory. > > This helps solving the issue where the cache is empty or doesn't exist yet, > and two JavaFX applications start at the same time, and both try to copy the > same native libraries to the same cache. > > No tests have been added to the PR though, since this requires a complex > scenario: building the SDK and publishing to local Maven repository, creating > two simple JavaFX applications that use those artifacts, using a temporary > folder for cache (via `javafx.cachedir`, and launching in parallel both > applications. > > I've tested successfully such scenario on Linux, Mac and Windows. modules/javafx.graphics/src/main/java/com/sun/glass/utils/NativeLibLoader.java line 311: > 309: FileLock fileLock = fileChannel.lock()) { > 310: try { > 311: if (!Files.exists(path)) { This code would fail if the target file exists but has a 0 length, or any length other that the actual resource length, or with the right length but wrong content. Do we want to address these scenarios? ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1188#discussion_r1279611539