RFR: 8359599: Calling refresh() for all virtualized controls recreates all cells instead of refreshing the cells [v2]

Marius Hanl mhanl at openjdk.org
Fri Oct 3 14:48:48 UTC 2025


On Fri, 3 Oct 2025 05:24:12 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

>> Marius Hanl has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
>> 
>>  - Merge branch 'master' of https://github.com/openjdk/jfx into 8359599-refresh-recreates-all
>>  - Calling refresh() for all virtualized controls recreates all cells instead of refreshing the cells
>
> modules/javafx.controls/src/test/java/test/javafx/scene/control/skin/TreeTableRowSkinTest.java line 368:
> 
>> 366:         JMemoryBuddy.assertCollectable(ref);
>> 367:     }
>> 368: 
> 
> Is there another test that verifies that cells are garbage collectable?  For example, in the case where a table / list / tree table becomes smaller visually, I think that it should then perhaps discard some cells that then should be collectable?

I think there are some when switching the `TableRow`, as this should remove all old rows and gc them at one point.

Other than that, I think there is no case where we gc cells. When we change the viewport width/height, all rows (cells if a `fixedCellSize` is set) will be piled / cached, but not destroyed.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1830#discussion_r2402229185


More information about the openjfx-dev mailing list