Saturday, July 13, 2013

Re: Very strange deserialization problem only in dev mode

Little more information on this.  The problem occurs when the page returns and the url is different than it was when it left.  Eg: It has some params.  Note, that is still has the gwt.codesvr param.

Also, the RPC call makes it to the server, it just doesn't make it back.  It falls into the onFailure.

This means we can actually work around the problem by grabbing all the url params we need, doing the RPC, and then adding a check in the onFailure to the redirect to the original url without the params.

Eg:
@Override
public void onFailure(Throwable caught) {
  // Only when using the GWT plugin
  if (GWT.isProdMode() == false) {
    Window.Location.replace("<your original url>");
  }
}

GWT bug bypassed!  :-)


On Wednesday, 10 July 2013 17:28:43 UTC+10, Craig Mitchell wrote:
I'm also getting this problem.  Only in dev mode, and only when the page is returning from an external page.

On our situation, we are doing OAuth.  So we redirect to an external site to login, then when the external site returns, the first RPC call throws a IncompatibleRemoteServiceException.

The only way to get it working again, is to restart the GWT server.  Refreshing, or closing and opening the browser, does not fix it.

GWT 2.5.1, Eclipse, Java 1.7.


On Sunday, January 20, 2013 1:57:14 AM UTC+11, Wayne Rasmuss wrote:
I have an application that gives me the following error only in dev mode and only when I go directly to the place that makes this server call. When the application is compiled or if I navigate to the place that makes the call trough other places, everything works fine. I thought it might be timing issues with getting the app loaded. So, I put a Thread.sleep(10000) in the service impl before I return data. It made no difference. Same behavior in all cases. Any thoughts?


WARNING: Fetch supplies failed: whatsnext.clientonly.EventSource@39cc1709
com.google.gwt.core.client.impl.SerializableThrowable$ThrowableWithClassName: The response could not be deserialized
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:221)
at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.google.gwt.core.client.impl.SerializableThrowable$ThrowableWithClassName: java.lang.RuntimeException: Unable to find class com.google.gwt.user.client.rpc.core.java.lang.String_Array_Rank_1_FieldSerializer
at com.google.gwt.user.client.rpc.impl.SerializerBase.getTypeHandler(SerializerBase.java:164)
at com.google.gwt.user.client.rpc.impl.SerializerBase.instantiate(SerializerBase.java:114)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:396)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter$ResponseReader$8.read(RequestCallbackAdapter.java:106)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:214)
... 28 more
Caused by: com.google.gwt.core.client.impl.SerializableThrowable$ThrowableWithClassName: Unable to find class com.google.gwt.user.client.rpc.core.java.lang.String_Array_Rank_1_FieldSerializer
at com.google.gwt.user.client.rpc.impl.ReflectionHelper.loadClass(ReflectionHelper.java:93)
at com.google.gwt.user.client.rpc.impl.SerializerBase.getTypeHandler(SerializerBase.java:160)
... 33 more
Caused by: com.google.gwt.core.client.impl.SerializableThrowable$ThrowableWithClassName
at com.google.gwt.dev.shell.CompilingClassLoader$MultiParentClassLoader.findClass(CompilingClassLoader.java:368)
at com.google.gwt.dev.shell.CompilingClassLoader$MultiParentClassLoader.loadClass(CompilingClassLoader.java:388)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.google.gwt.user.client.rpc.impl.ReflectionHelper.loadClass(ReflectionHelper.java:91)
... 34 more

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment