Unable to invoke method onChartClick exception after Vaadin upgrade

Hi,

After upgrading from Vaadin 7.1.7 to 7.5. (Yes, quite a leap) I’ve noticed that when a chart is clicked upon - an exception is thrown.
I’ve attempted to upgrade Charts as well (from 1.1.7 to 2.1.3), but I keep getting the same exception :

com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method onChartClick in c
om.vaadin.addon.charts.client.ui.ChartServerRpc
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:160)
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:
313)
        at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:202)
        at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:153)
        at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:232)
        at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:492)
        at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.jav
a:88)
        at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.jav
a:78)
        at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
        at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
        at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:154)
        at org.atmosphere.container.Tomcat7Servlet30SupportWithWebSocket.service(Tomcat7Servlet30Sup
portWithWebSocket.java:62)
        at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.jav
a:571)
        at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:3
33)
        at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.jav
a:328)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSock
etProcessor.java:425)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatchReader(DefaultWebSocketProcess
or.java:795)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSock
etProcessor.java:527)
        at org.atmosphere.container.TomcatWebSocketHandler.onTextData(TomcatWebSocketHandler.java:10
4)
        at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:191)
        at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:139)
        at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:8
8)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.jav
a:616)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
        ... 30 more

Hi,

Can you verify if the widgetset was updated and compiled?

The widgetset seems indeed not to have been updated properly.
But now with Charts 2.1.3, I get a different exception :

Apr 27, 2016 6:43:25 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE:
java.lang.RuntimeException: java.lang.IllegalArgumentException
        at com.vaadin.server.JsonCodec.decodeObject(JsonCodec.java:627)
        at com.vaadin.server.JsonCodec.decodeCustomType(JsonCodec.java:334)
        at com.vaadin.server.JsonCodec.decodeInternalOrCustomType(JsonCodec.java:291)
        at com.vaadin.server.communication.ServerRpcHandler.parseServerRpcInvocation(ServerRpcHandle
r.java:499)
        at com.vaadin.server.communication.ServerRpcHandler.parseInvocation(ServerRpcHandler.java:43
3)
        at com.vaadin.server.communication.ServerRpcHandler.parseInvocations(ServerRpcHandler.java:3
77)
        at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:
244)
        at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:202)
        at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:153)
        at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:232)
        at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:492)
        at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.jav
a:88)
        at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.jav
a:78)
        at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
        at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
        at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:154)
        at org.atmosphere.container.Tomcat7Servlet30SupportWithWebSocket.service(Tomcat7Servlet30Sup
portWithWebSocket.java:62)
        at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.jav
a:571)
        at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:3
33)
        at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.jav
a:328)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSock
etProcessor.java:425)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatchReader(DefaultWebSocketProcess
or.java:795)
        at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSock
etProcessor.java:527)
        at org.atmosphere.container.TomcatWebSocketHandler.onTextData(TomcatWebSocketHandler.java:10
4)
        at org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:191)
        at org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:139)
        at org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:8
8)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.jav
a:616)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.vaadin.server.JsonCodec$MethodProperty.setValue(JsonCodec.java:168)
        at com.vaadin.server.JsonCodec.decodeObject(JsonCodec.java:622)
        ... 34 more

What chart type are you using when you get the exception?
That seems to be same error as in
https://dev.vaadin.com/ticket/19759

I am using ChartType.LINE

Might there be a way to bypass this problem?

Hi,

The issue should be fixed in Vaadin Charts 3.1.0-beta1. Try upgrading to that version.

In the meantime I’ll try to test if there is a workaround using Vaadin Charts 2.1.3