On Tue, 4 Oct 2022 14:06:59 GMT, Jeanette Winzenburg <faste...@openjdk.org> 
wrote:

>>> Perhaps the test is too artificial, something is not being done correctly 
>>> or exactly as in the real application? Using StageLoader or showControl() 
>>> hooks up the missing dependencies.
>> 
>> one last time: there is _no_ such thing as a "too artificial" test - a class 
>> must _always_ fulfil its contract in whatever valid context. It's not enough 
>> to do so for some (or even the majority) of use-cases. Plus: logically, any 
>> assumption (like: there are no memory leaks) is invalidated by a single 
>> counter-example (like the valid test).
>> 
>> Have a nice weekend, I'm off now :)
>
>> Thanks again, @kleopatra With your permission, I'll add tests with and 
>> without scene property set. Or do we want to keep the original set?
> 
> SkinMemoryLeakTest already has both methods, that is testing the replacement 
> of a skin with/out residing in a scene .. no need for adding anything ;)

> In fact, it's so easy that most built-in skins do it (and these were created 
> by the developers of JavaFX itself, so obviously it's a major problem if even 
> those people get it wrong so often).
> 

well, just guessing games here but: mine is that they didn't put too many 
thoughts into the possibility of replacing a skin and if they did, they 
actively prevented it - as seen in the implementation of TextAreaSkin.dispose 
when we started the current cleanup round:

    /** {@inheritDoc} */
    @Override public void dispose() {
        super.dispose();

        if (behavior != null) {
            behavior.dispose();
        }

        // TODO Unregister listeners on text editor, paragraph list
        throw new UnsupportedOperationException();
    }

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

PR: https://git.openjdk.org/jfx/pull/906

Reply via email to