On Wed, 13 Nov 2024 20:02:01 GMT, Marius Hanl <mh...@openjdk.org> wrote:
>> 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 Marked as reviewed by angorya (Reviewer). ------------- PR Review: https://git.openjdk.org/jfx/pull/1635#pullrequestreview-2434323446