This PR fixes an issue where the item of the table row is null, although the 
cell itself is not empty (non null value).

The fix is to call `indexChanged(..)` immediately after the index was changed, 
but before all `indexProperty()` listener are notified.
The then notified listener in `TableRowSkinBase` will update the underlying 
cells, which will eventually result in an call to  `updateItem(..)`, where the 
NPE happened (and now not anymore, since the table row is now correctly setup 
before).

There is one special case: When the index didn't changed at all, we manually 
call `indexChanged(..)` (basically just like before) since when a property is 
not changed, `invalidated()` is not called, but we need to notify subclasses 
that `updateIndex(..)` was called.

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

Commit messages:
 - 8251483: indexChanged(..) is now called earlier to update the underlying 
item first before the listener which reacts to the index change are notified.

Changes: https://git.openjdk.java.net/jfx/pull/741/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=741&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8251483
  Stats: 75 lines in 3 files changed: 67 ins; 0 del; 8 mod
  Patch: https://git.openjdk.java.net/jfx/pull/741.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/741/head:pull/741

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

Reply via email to