> Cleanup of Tree-/TableRowSkin to support switching skins > > The misbehavior/s > - memory leaks due to manually registered listeners that were not removed > - side-effects due to listeners still active on old skin (like NPEs) > > Fix > - use skin api for all listener registration (for automatic removal in > dispose) > - ~~do not install listeners that are not needed (fixedCellSize, same as in > fix of ListCellSkin > [JDK-8246745](https://bugs.openjdk.java.net/browse/JDK-8246745))~~ not > handled here, see > [JDK-8277000](https://bugs.openjdk.java.net/browse/JDK-8277000) > > Added tests for each listener involved in the fix to guarantee it's still > working and does not have unwanted side-effects after switching skins. > > Note: there are pecularities in row skins (like not updating themselves on > property changes of its control, throwing NPEs when not added to a > VirtualFlow) which are not part of this issue but covered in > [JDK-8274065](https://bugs.openjdk.java.net/browse/JDK-8274065)
Jeanette Winzenburg has updated the pull request incrementally with one additional commit since the last revision: changes as requested in review ------------- Changes: - all: https://git.openjdk.java.net/jfx/pull/632/files - new: https://git.openjdk.java.net/jfx/pull/632/files/603b08af..801182ff Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=632&range=04 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=632&range=03-04 Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod Patch: https://git.openjdk.java.net/jfx/pull/632.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/632/head:pull/632 PR: https://git.openjdk.java.net/jfx/pull/632