Hello all,
I am getting a suspicious exception while updating data in a Grid within an application I am developing. I am going to shortly describe the problem, but I want to point out that the application does work perfectly with Vaadin 7.5.10 and I proved it working also with 7.6.0-alpha2, but if I recompile it with Vaadin 7.6.0-beta1 on, the problem appears. Here is the use case for the occurrence of the error:
- Data from a row of the Grid is modified and saved (the Grid editor properly saves the change and after the commit the modified data are correctly displayed)
- The modified data are sent to the backend and properly saved into the database (checked against the database frontend)
- The data are properly reloaded into the Grid, but soon after the error appears recursively and endlessly. Here follows the stacktrace:
java.lang.NullPointerException: null
at com.vaadin.data.util.GeneratedPropertyContainer$GeneratedPropertyItem.getItemProperty(GeneratedPropertyContainer.java:144) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.ui.Grid$RowDataGenerator.writeData(Grid.java:2192) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.ui.Grid$RowDataGenerator.generateData(Grid.java:2152) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.data.RpcDataProviderExtension.getRowData(RpcDataProviderExtension.java:395) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.data.RpcDataProviderExtension.internalUpdateRows(RpcDataProviderExtension.java:521) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.data.RpcDataProviderExtension.beforeClientResponse(RpcDataProviderExtension.java:347) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:112) ~[vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.AtmospherePushConnection.push(AtmospherePushConnection.java:168) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:150) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:243) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:503) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:88) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:78) [vaadin-server-7.6.0.rc1.jar:7.6.0.rc1]
at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.container.Jetty9AsyncSupportWithWebSocket.service(Jetty9AsyncSupportWithWebSocket.java:180) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.atmosphere.container.Jetty9WebSocketHandler.onWebSocketText(Jetty9WebSocketHandler.java:92) [atmosphere-runtime-2.2.7.vaadin1.jar:2.2.7.vaadin1]
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:128) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:64) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:122) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:160) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:214) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:258) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:613) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:468) [websocket-common-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [jetty-io-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:620) [jetty-util-9.2.5.v20141112.jar:9.2.5.v20141112]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:540) [jetty-util-9.2.5.v20141112.jar:9.2.5.v20141112]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
I cannot figure out what the issue is all about. Of course if I avoid using the GeneratedPropertyContainer the error does not appear, but first of all this is not what I want and I guess the problem is not on the GeneratedPropertyContainer itself, but rather with something I might be doing wrong.
Is there someone having any idea on where the root cause might be?
Thanks in advance for any help!