RFR: 8373885: Compilation failure due to a warning when compiling with Java 25

Chen Liang liach at openjdk.org
Wed Dec 17 19:45:44 UTC 2025


On Wed, 17 Dec 2025 15:04:18 GMT, Kevin Rushforth <kcr 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.
>
> modules/javafx.controls/src/main/java/javafx/scene/control/SplitPane.java line 316:
> 
>> 314: 
>> 315:     // Cache the divider positions if the items have not been created.
>> 316:     private final Map<Integer, Double> dividerCache = new HashMap<>();
> 
> I don't understand why this would have anything to do with a compiler warning. Further, this will likely lead to a leak, so I doubt this is what we want.

I recommend using a LinkedHashMap that overrides `removeEldestEntry` for this cache instead.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/2010#discussion_r2628410224


More information about the openjfx-dev mailing list