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