RFR: 8089398: [ChoiceBox, ComboBox] throws NPE on setting value on null selectionModel [v3]
Ajit Ghaisas
aghaisas at openjdk.java.net
Wed Jul 7 11:23:54 UTC 2021
On Tue, 6 Jul 2021 20:20:23 GMT, Marius Hanl <mhanl at openjdk.org> wrote:
>> This PR fixes 2 NPEs in Choice-and ComboBox, when the selection model is null.
>>
>> ChoiceBox:
>> - Null check in **valueProperty()** listener
>>
>> ComboBox:
>> - Null check in **valueProperty()** listener
>> - Null check in **ComboBoxListViewSkin#updateValue()**
>>
>> The tests checks, that no NPE is printed to the console. They also checks, that the set value is still displayed (either in the ComboBox button cell or the ChoiceBox display label)
>
> Marius Hanl has updated the pull request incrementally with one additional commit since the last revision:
>
> Added another cbx test + cleaned up exception handler + let the exception bubble up instead of try-catch
modules/javafx.controls/src/main/java/javafx/scene/control/ComboBox.java line 244:
> 242: if (getItems() == null) return;
> 243: SelectionModel<T> sm = getSelectionModel();
> 244: if (sm == null) return;
Do we need similar null check in editableProperty() listener below?
modules/javafx.controls/src/main/java/javafx/scene/control/skin/ComboBoxListViewSkin.java line 401:
> 399: private void updateValue() {
> 400: SingleSelectionModel<T> comboBoxSM = comboBox.getSelectionModel();
> 401: if (comboBoxSM == null) {
Similar null check can be added to layoutChildren() method as well.
-------------
PR: https://git.openjdk.java.net/jfx/pull/557
More information about the openjfx-dev
mailing list