On Mon, 15 Nov 2021 13:11:06 GMT, Jeanette Winzenburg <faste...@openjdk.org> wrote:
>> 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: > > reverted fixedCellSize handling Overall the fix looks OK. I have 2 minor comments. modules/javafx.controls/src/shims/java/javafx/scene/control/skin/TableSkinShim.java line 2: > 1: /* > 2: * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. 2021 :) ------------- PR: https://git.openjdk.java.net/jfx/pull/632