RFR: 8277848 Binding and Unbinding to List leads to memory leak [v3]

Michael Strauß mstrauss at openjdk.java.net
Wed Jan 5 19:35:19 UTC 2022


On Wed, 5 Jan 2022 18:14:44 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:

>> Making the initial listener of the ListProperty weak fixes the problem.
>> The same is fixed for Set and Map.
>> Due to a smart implementation, this is done without any performance drawback.
>> (The trick is to have an object, which is both the WeakReference and the Changelistener)
>> By implying the same trick to the InvalidationListener, this should even improve the performance of the collection properties.
>
> Florian Kirmaier has updated the pull request incrementally with one additional commit since the last revision:
> 
>   JDK-8277848
>   Further optimization based code review.
>   This Bugfix should now event improve the performance

modules/javafx.base/src/main/java/javafx/beans/property/ListPropertyBase.java line 338:

> 336:         public void onChanged(Change<? extends E> change) {
> 337:             ListPropertyBase<E> ref = get();
> 338:             if(ref != null) {

Minor: space after `if`

modules/javafx.base/src/main/java/javafx/beans/property/MapPropertyBase.java line 339:

> 337:         public void onChanged(Change<? extends K, ? extends V> change) {
> 338:             MapPropertyBase<K,V> ref = get();
> 339:             if(ref != null) {

Minor: space after `if`

modules/javafx.base/src/main/java/javafx/beans/property/SetPropertyBase.java line 341:

> 339:         public void onChanged(Change<? extends E> change) {
> 340:             SetPropertyBase<E> ref = get();
> 341:             if(ref != null) {

Minor: space after `if`

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

PR: https://git.openjdk.java.net/jfx/pull/689


More information about the openjfx-dev mailing list