Unable to use push mechanism

I am trying to update a table and push the modification to the client side and I always got this error. What do I miss ?


 if ("read".equals(propertyId)) {
                    CheckBox checkBox = new CheckBox(null, getItem(itemId).getItemProperty(propertyId));
                    checkBox.addValueChangeListener(new ValueChangeListener() {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void valueChange(com.vaadin.data.Property.ValueChangeEvent event) {
                            if ((Boolean) event.getProperty().getValue()) {
                                UI.getCurrent().access(new Runnable() {

                                    @Override
                                    public void run() {
                                        AbstractMonitoringTable.this.getItem(itemId).getItemProperty("resolutionProvider")
                                                .setValue(((RPMApplication) UI.getCurrent()).getSessionData().getProviderName());
                                        UI.getCurrent().push();
                                    }
                                });
                            }

                        }
                    });
                    checkBox.setImmediate(true);
                    return checkBox;
                }

14:50:11.345 [http-bio-808]
 ERROR c.vaadin.server.DefaultErrorHandler
				-
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method setChecked in com.vaadin.shared.ui.checkbox.CheckBoxServerRpc
	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:170) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.communication.ServerRpcHandler.handleBurst(ServerRpcHandler.java:214) [vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:111) [vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:158) [vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:289) [vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.communication.PushHandler.onRequest(PushHandler.java:308) [vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:259) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:166) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:137) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket.service(Tomcat7AsyncSupportWithWebSocket.java:59) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1448) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:219) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.websocket.DefaultWebSocketProcessor$2.run(DefaultWebSocketProcessor.java:183) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:178) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:167) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.atmosphere.container.TomcatWebSocketHandler.onTextMessage(TomcatWebSocketHandler.java:92) [atmosphere-runtime-1.0.14.vaadin4.jar:1.0.14.vaadin4]

	at org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:74) [catalina.jar:7.0.39]

	at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:187) [catalina.jar:7.0.39]

	at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:135) [catalina.jar:7.0.39]

	at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:83) [tomcat-coyote.jar:7.0.39]

	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:587) [tomcat-coyote.jar:7.0.39]

	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) [tomcat-coyote.jar:7.0.39]

	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [na:1.6.0_51]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [na:1.6.0_51]

	at java.lang.Thread.run(Thread.java:680) [na:1.6.0_51]

Caused by: java.lang.reflect.InvocationTargetException: null
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_51]

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_51]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_51]

	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_51]

	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:168) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	... 26 common frames omitted
Caused by: com.vaadin.event.ListenerMethod$MethodException: Invocation of method valueChange in ca.bell.rpm.view.monitoring.view.AbstractMonitoringTable$1$1 failed.
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:528) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:167) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:968) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.ui.AbstractField.fireValueChange(AbstractField.java:1126) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.ui.AbstractField.setValue(AbstractField.java:542) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.ui.AbstractField.setValue(AbstractField.java:445) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.ui.CheckBox$1.setChecked(CheckBox.java:62) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	... 31 common frames omitted
java.lang.StackOverflowError: null
	at java.util.concurrent.locks.ReentrantLock$Sync.nonfairTryAcquire(ReentrantLock.java:106) ~[na:1.6.0_51]

	at java.util.concurrent.locks.ReentrantLock$NonfairSync.tryAcquire(ReentrantLock.java:190) ~[na:1.6.0_51]

	at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1224) ~[na:1.6.0_51]

	at java.util.concurrent.locks.ReentrantLock.tryLock(ReentrantLock.java:416) ~[na:1.6.0_51]

	at com.vaadin.server.VaadinService.ensureAccessQueuePurged(VaadinService.java:1690) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:939) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinService.ensureAccessQueuePurged(VaadinService.java:1692) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:939) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinService.ensureAccessQueuePurged(VaadinService.java:1692) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:939) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinService.ensureAccessQueuePurged(VaadinService.java:1692) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

	at com.vaadin.server.VaadinSession.unlock(VaadinSession.java:939) ~[vaadin-server-7.1-SNAPSHOT.jar:7.1.1.nightly-17bb700e551aabcacde52528e9abd5c4b7481ffb-141]

I found the problem.

  1. The current nightly build is broken (Vaadin 7.1.2)
  2. If you override the TableFieldFactory and return null to get labels for specific properties, afterthought you will not be able to change the value of this element with push mechanism.

Thank you for spotting this highly critical problem.

Expect
http://dev.vaadin.com/ticket/12310
to be fixed very soon.

The issue has now been fixed so the next snapshot build (due in about 20 hours) should work as expected again.