RFR: 8232824: Removing TabPane with strong referenced content causes memory leak from weak one

Ambarish Rapte arapte at openjdk.java.net
Wed Jan 22 17:55:06 UTC 2020


On Fri, 17 Jan 2020 23:40:18 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>>> 
>>> 
>>> @arapte - This bug looks like a good candidate for JavaFX 14. Can you retarget this PR to the jfx14 branch?
>> 
>> Thanks for guiding Kevin, PR is now targeted to jfx14.
> 
> The fix looks good. I'll take a closer look at the unit test later.
> 
> Speaking of tests...since the addition of the `TabPane` reordering logic was a victim of the already-existing leak in the `viewOrderChildren` list in `Parent`, it should be possible to write a test case using a Group node and a few Shape nodes, using setViewOrder directly on the Group node (this would be in addition to the system test you wrote). Can you take a look at adding one? It might even be possible to do it as a `javafx.graphics` module unit test rather than a system test, although you would need to see if the bug reproduced there (I suspect it will).

> 
> 
> The fix looks good. I'll take a closer look at the unit test later.
> 
> Speaking of tests...since the addition of the `TabPane` reordering logic was a victim of the already-existing leak in the `viewOrderChildren` list in `Parent`, it should be possible to write a test case using a Group node and a few Shape nodes, using setViewOrder directly on the Group node (this would be in addition to the system test you wrote). Can you take a look at adding one? It might even be possible to do it as a `javafx.graphics` module unit test rather than a system test, although you would need to see if the bug reproduced there (I suspect it will).

Hello Kevin,
The bug can be reproduced with system test written using `Group` and `Shape` which is very similar to `TabPaneHeaderLeakTest` test. but it seems the bug is not reproducible with unit test. I tried a unit test very similar to the newly added system test `ShapeViewOrderLeakTest`, but looks like `Parent.viewOrderChildren` list does not get populated and so the issue does not occur.

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

PR: https://git.openjdk.java.net/jfx/pull/79


More information about the openjfx-dev mailing list