In case of uninitialized column settings the primitive boolean comparison with the Boolean object return value causes a NullPointerException
on auto unboxing.
module: io.jmix.ui:jmix-ui:1.1.0
class: io.jmix.ui.settings.component.binder.AbstractDataGridSettingsBinder:292
stack trace (excerpt):
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.sys.ScreensImpl$TabCloseTask.run(ScreensImpl.java:1344)
at io.jmix.ui.sys.ScreensImpl.handleTabWindowClose(ScreensImpl.java:1322)
at io.jmix.ui.widget.JmixMainTabSheet.lambda$new$f77d23a5$1(JmixMainTabSheet.java:129)
at com.vaadin.ui.TabSheet$TabsheetServerRpcImpl.closeTab(TabSheet.java:100)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:442)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:407)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:275)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:83)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1636)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:465)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
…