RFR: 8344067: TableCell indices may not match the TableRow index [v2]
Marius Hanl
mhanl at openjdk.org
Wed Nov 13 20:02:01 UTC 2024
> This PR fixes a bug where the `TableCell` indices can be outdated (not synchronized) with the `TableRow` index.
>
> What normally happens is:
> - Index is changed: Cell update is requested when the row is empty (otherwise noop)
> - Item is changed: Cell update is requested, which will now update the indices of the underlying `TableCells`
>
> Under some circumstances, when a `TableRow` is reused (e.g. index 60 -> 1) the item can be the same
> -> `oldIndex != newIndex && oldItem == newItem`
> This can happen when the items of a `TableView` are changed, but some items are the same in both item lists (Think about a filter, where we filter down 60 to 2 items).
>
> -> In this scenario, the cell update is not triggered, so the underlying `TableCell` indices will not be updated ever (e.g. they still have index 60 set, but the row has 1 now).
>
> The fix is to always update the underlying `TableCell` indices when the `TableRow` index changed.
> While usually the item is different when the index changed, this is not always the case (there is no guarantee that the item changed, as we can see in the example, where the cell is reused).
>
> ---
>
> Also made sure that the issues linked in the code and ticket do not regress:
> - https://bugs.openjdk.org/browse/JDK-8095357
> - https://bugs.openjdk.org/browse/JDK-8115269
Marius Hanl has updated the pull request incrementally with one additional commit since the last revision:
8344067: Format streams
-------------
Changes:
- all: https://git.openjdk.org/jfx/pull/1635/files
- new: https://git.openjdk.org/jfx/pull/1635/files/54f7445d..aa782c23
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jfx&pr=1635&range=01
- incr: https://webrevs.openjdk.org/?repo=jfx&pr=1635&range=00-01
Stats: 16 lines in 4 files changed: 0 ins; 0 del; 16 mod
Patch: https://git.openjdk.org/jfx/pull/1635.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1635/head:pull/1635
PR: https://git.openjdk.org/jfx/pull/1635
More information about the openjfx-dev
mailing list