jmix icon indicating copy to clipboard operation
jmix copied to clipboard

NPE is raised when we apply the settings for the dataGrid with editorActionsColumn

Open ilushaaa opened this issue 11 months ago • 0 comments

Environment

Jmix version: 2.x

Bug Description

NPE is raised when we apply the settings for the dataGrid with editorActionsColumn

Steps To Reproduce

  1. Create dataGrid which has an editorActionsColumn.
  2. Make columns resizable.
  3. Add settings facet.
  4. 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.

ilushaaa avatar Mar 19 '24 11:03 ilushaaa