RFR: 8373885: Compilation failure due to a warning when compiling with Java 25
Andy Goryachev
angorya at openjdk.org
Wed Dec 17 17:31:17 UTC 2025
On Wed, 17 Dec 2025 13:43:35 GMT, Marius Hanl <mhanl at openjdk.org> 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
More information about the openjfx-dev
mailing list