RFR: 8290037: Bindings should clean up after themselves when their weak listeners go out of scope [v2]

Marius Hanl mhanl at openjdk.org
Sat Nov 16 00:24:56 UTC 2024


On Thu, 14 Jul 2022 19:48:04 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

>> This is an initial (incomplete) implementation of 8290037 for evaluation.
>> 
>> If the approach is agreed, I will modify the rest of the `*PropertyBase` classes which use weak listeners, and add some tests.
>> 
>> I didn't use `Cleaner` because cleaning up a listener may block.
>
> John Hendrikx has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Made accidental public field private

Does this address the problem that Bindings seem to not clean up properly, e.g. something a Binding like this:
`xyz.bind(col.visibleProperty().and(col.resizableProperty())`
seems to not properly cleanup after calling:
`xyz.undbind()`
as when checking the listener in the `ExpressionHelper`, the `col.visibleProperty()` Binding is still in there (`xyz` binding is of course cleared, but this remains).

This is something I discovered some days ago and was not aware that this is the case, although not sure if I miss something here.

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

PR Comment: https://git.openjdk.org/jfx/pull/827#issuecomment-2480199574


More information about the openjfx-dev mailing list