RFR: 8274061: Tree-/TableRowSkin: misbehavior on switching skin [v4]

Ajit Ghaisas aghaisas at openjdk.java.net
Fri Nov 19 10:01:48 UTC 2021


On Mon, 15 Nov 2021 13:11:06 GMT, Jeanette Winzenburg <fastegal at 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


More information about the openjfx-dev mailing list