On Mon, 12 Sep 2022 16:27:06 GMT, Marius Hanl <[email protected]> wrote:
>> This PR fixes a bunch of NPEs when a null `SelectionModel` or `FocusModel`
>> is set on a `ListView`.
>>
>> The following NPEs are fixed (all are also covered by exactly one test case):
>> NPEs with null selection model:
>> - Mouse click on a `ListCell`
>> - SPACE key press
>> - KP_UP (arrow up) key press
>> - HOME key press
>> - END key press
>> - BACK_SLASH + CTRL key press
>>
>> NPEs with null focus model:
>> - SPACE key press
>> - Select an items: getSelectionModel().select(1)
>> - Clear-Select an item and add one after:
>> `listView.getSelectionModel().clearAndSelect(1);
>> listView.getItems().add("3");`
>
> Marius Hanl has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Do selection/focus logic after the null check
>
> No need to prepare selection/focus stuff just to return later as one of
> them is null
Just updated to JavaFX 19 (without this fix) and noticed this NPE:
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException:
Cannot invoke
"javafx.scene.control.TableView$TableViewSelectionModel.getSelectedCells()"
because the return value of
"javafx.scene.control.TableView.getSelectionModel()" is null
This is when setting SelectionModel to null (because I don't want the TableView
to be selectable) and clicking on the headerbar to sort.
-------------
PR: https://git.openjdk.org/jfx/pull/711