jmix-projects / jmix-ui

DEPRECATED. Use https://github.com/jmix-framework/jmix
https://www.jmix.io
3 stars 7 forks source link

DataGrid settings binder throws NPE while the editor screen is closing #704

Closed Flaurite closed 2 years ago

Flaurite commented 2 years ago

Steps to reproduce

  1. Download attached project: tr-datagrid-settings.zip
  2. Open Orders -> create entity -> close editor without changes

Probably, error occurs because of changing Table to DataGrid component while saved settings is not fully compatible.

Stacktrace

java.lang.NullPointerException
    at io.jmix.ui.settings.component.binder.AbstractDataGridSettingsBinder.isCommonDataGridSettingsChanged(AbstractDataGridSettingsBinder.java:292)
    at io.jmix.ui.settings.component.binder.AbstractDataGridSettingsBinder.saveSettings(AbstractDataGridSettingsBinder.java:123)
    at io.jmix.ui.settings.component.binder.AbstractDataGridSettingsBinder.saveSettings(AbstractDataGridSettingsBinder.java:41)
    at io.jmix.uidata.settings.ScreenSettingsManagerImpl.saveSettings(ScreenSettingsManagerImpl.java:113)
    at io.jmix.ui.settings.facet.ScreenSettingsFacetImpl.saveScreenSettings(ScreenSettingsFacetImpl.java:318)
    at io.jmix.ui.settings.facet.ScreenSettingsFacetImpl.saveSettings(ScreenSettingsFacetImpl.java:111)
    at io.jmix.ui.settings.facet.ScreenSettingsFacetImpl.onAfterDetachEvent(ScreenSettingsFacetImpl.java:300)
    at io.jmix.core.common.event.EventHub.publish(EventHub.java:170)
    at io.jmix.ui.screen.Screen.fireEvent(Screen.java:124)
    at io.jmix.ui.screen.UiControllerUtils.fireEvent(UiControllerUtils.java:58)
    at io.jmix.ui.sys.ScreensImpl.fireScreenAfterDetachEvent(ScreensImpl.java:1371)
    at io.jmix.ui.sys.ScreensImpl.remove(ScreensImpl.java:543)
    at io.jmix.ui.screen.Screen.close(Screen.java:327)
    at io.jmix.ui.screen.StandardEditor.cancel(StandardEditor.java:604)
reznikova21 commented 2 years ago

1.2.0-SNAPSHOT - verified