> 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 with a new target base due to a merge or a rebase. The pull request now contains 10 commits: - Merge branch 'openjdk:master' into JDK-8277848-list-binding-leak - JDK-8277848 Removed print statements - Merge remote-tracking branch 'origjfx/master' into JDK-8277848-list-binding-leak # Conflicts: # modules/javafx.base/src/main/java/javafx/beans/property/ListPropertyBase.java # modules/javafx.base/src/main/java/javafx/beans/property/SetPropertyBase.java # modules/javafx.base/src/test/java/test/javafx/beans/property/SetPropertyBaseTest.java - Merge remote-tracking branch 'origjfx/master' into JDK-8277848-list-binding-leak - JDK-8277848 Added tests to ensure no premature garbage collection is happening. - JDK-8277848 Added 3 more tests to verify that a bug discussed in the PR does not appear. - JDK-8277848 Added the 3 requests whitespaces - JDK-8277848 Further optimization based code review. This Bugfix should now event improve the performance - JDK-8277848 Added missing change - JDK-8277848 Fixed memoryleak, when binding and unbinding a ListProperty. The same was fixed for SetProperty and MapProperty. ------------- Changes: https://git.openjdk.org/jfx/pull/689/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=689&range=09 Stats: 244 lines in 6 files changed: 183 ins; 24 del; 37 mod Patch: https://git.openjdk.org/jfx/pull/689.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/689/head:pull/689 PR: https://git.openjdk.org/jfx/pull/689