jmix
jmix copied to clipboard
NPE is raised when we apply the settings for the dataGrid with editorActionsColumn
Environment
Jmix version: 2.x
Bug Description
NPE is raised when we apply the settings for the dataGrid with editorActionsColumn
Steps To Reproduce
- Create dataGrid which has an editorActionsColumn.
- Make columns resizable.
- Add settings facet.
- Open screen, change columns size, close screen, open again.
Current Behavior
editorActionsColumn doesn't init key property by default and it equals to null. We save column with key == null
.
And when we apply settings and try to find column with key == null
the NPE is raised.
java.lang.NullPointerException: null at java.base/java.util.Objects.requireNonNull(Objects.java:209) ~[na:na] at io.jmix.flowui.facet.settings.component.binder.AbstractGridSettingsBinder.applySettings(AbstractGridSettingsBinder.java:59) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.facet.settings.component.binder.AbstractGridSettingsBinder.applySettings(AbstractGridSettingsBinder.java:37) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowuidata.settings.ViewSettingsComponentManagerImpl.applySettings(ViewSettingsComponentManagerImpl.java:68) ~[jmix-flowui-data-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.facet.impl.SettingsFacetImpl.applyViewSettings(SettingsFacetImpl.java:305) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.facet.impl.SettingsFacetImpl.applySettings(SettingsFacetImpl.java:105) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.facet.impl.SettingsFacetImpl.onViewReady(SettingsFacetImpl.java:283) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.facet.impl.SettingsFacetImpl$ViewEventListener.lambda$subscribe$9b1b5227$1(SettingsFacetImpl.java:401) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:239) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.ComponentEventBus.fireEvent(ComponentEventBus.java:228) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.Component.fireEvent(Component.java:411) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.ComponentUtil.fireEvent(ComponentUtil.java:416) ~[flow-server-24.3.3.jar:24.3.3] at io.jmix.flowui.view.ViewControllerUtils.fireEvent(ViewControllerUtils.java:121) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.view.DialogWindow.fireViewReadyEvent(DialogWindow.java:262) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.view.DialogWindow.onDialogOpenedChanged(DialogWindow.java:226) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at com.vaadin.flow.component.ComponentEventBus.fireEventForListener(ComponentEventBus.java:239) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.ComponentEventBus.fireEvent(ComponentEventBus.java:228) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.Component.fireEvent(Component.java:411) ~[flow-server-24.3.3.jar:24.3.3] at com.vaadin.flow.component.dialog.Dialog.doSetOpened(Dialog.java:854) ~[vaadin-dialog-flow-24.3.3.jar:na] at com.vaadin.flow.component.dialog.Dialog.setOpened(Dialog.java:841) ~[vaadin-dialog-flow-24.3.3.jar:na] at com.vaadin.flow.component.dialog.Dialog.open(Dialog.java:457) ~[vaadin-dialog-flow-24.3.3.jar:na] at io.jmix.flowui.view.DialogWindow.open(DialogWindow.java:200) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.bpmflowui.view.modeler.properties.formdata.FormDataPropertiesFragment.showFormFieldEditWithProcessVariables(FormDataPropertiesFragment.java:411) ~[jmix-bpm-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.bpmflowui.view.modeler.properties.formdata.FormDataPropertiesFragment.onFormFieldsTableCreateActionPerformed(FormDataPropertiesFragment.java:380) ~[jmix-bpm-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.kit.event.EventBus.fireEvent(EventBus.java:82) ~[jmix-flowui-kit-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.kit.action.BaseAction.actionPerform(BaseAction.java:67) ~[jmix-flowui-kit-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.action.list.ListDataComponentAction.actionPerform(ListDataComponentAction.java:165) ~[jmix-flowui-2.3.999-SNAPSHOT.jar:na] at io.jmix.flowui.kit.component.button.JmixButtonActionSupport.onButtonClick(JmixButtonActionSupport.java:151) ~[jmix-flowui-kit-2.3.999-SNAPSHOT.jar:na]
Expected Behavior
Settings can apply to dataGrid with any type of columns.