On Wed, 17 Dec 2025 13:43:35 GMT, Marius Hanl <[email protected]> wrote:
> When compiling JavaFX with Java 25, a new warning appears. This warning will > result in a compilation failure because warnings are treated as error > (`-Werror`). > > The following warning appears: > > >> Task :controls:compileJava > C:..\jfx\modules\javafx.controls\src\main\java\javafx\scene\control\SplitPane.java:320: > warning: [identity] use of a value-based class with an operation that > expects reliable identity > private final WeakHashMap<Integer, Double> dividerCache = new > WeakHashMap<>(); > ^ > C:..\jfx\modules\javafx.controls\src\main\java\javafx\scene\control\SplitPane.java:320: > warning: [identity] use of a value-based class with an operation that > expects reliable identity > private final WeakHashMap<Integer, Double> dividerCache = new > WeakHashMap<>(); > ^ > error: warnings found and -Werror specified > 1 error > 2 warnings > >> Task :controls:compileJava FAILED > > > The warning makes sense: We use a `WeakHashMap` with the `Integer` class. So > the `Integer` values are saved as `WeakRef` inside the `Map`. This makes no > sense and is rightfully a warning. Marked as reviewed by angorya (Reviewer). I agree with John - the original code makes no sense. Perhaps it is the reason why we have so many bugs related to dividers? I think we can go with the proposed fix for now (it's a map of `<Integer, Double>` so little danger of leaks), and then attempt to get rid of this map altogether in a followup. ------------- PR Review: https://git.openjdk.org/jfx/pull/2010#pullrequestreview-3588809079 PR Comment: https://git.openjdk.org/jfx/pull/2010#issuecomment-3666410765
