Tuesday, July 18, 2017

Re: SerializationException when application is modified

As far as trying to catch the rpc exception, you might try setting a global uncaught exception handler then seeing if you can trap them via that method. We have switched to using resty-gwt/json here and longer use the built in GWT-RPC serializer.

You could try putting a ?=versionNumber at the end of the nocache js include in the main html file. (of course bumping the version number each release or what not). This should force a reload of the main js when reloading the main html file. I do know at one time there was a bug in the compiled output in version 2.7 in regards to timestamps for the output js file which would cause this issue on consistent basis. The only thing I can think of is that the html file is being cached and not reloaded perhaps or that the timestamp on the nocache or main html file is screwy.


On 07/18/2017 02:14 PM, Óscar Frías Barranco wrote:
We are following the recommendations on http://www.gwtproject.org/doc/latest/DevGuideCompilingAndDebugging.html#perfect_caching

But I am afraid that whatever the headers some browsers will cache some files anyway so we really need a way to force a reload of the web application when RPC calls return an exception.

Any ideas on how to implement this?


On Tue, Jul 18, 2017 at 7:34 PM, Michael Joyner <michael@newsrx.com> wrote:

We use https://github.com/realityforge/gwt-cache-filter to help deal with caching issues.


On 07/18/2017 12:15 PM, Óscar Frías Barranco wrote:
Hi.

When we modify the code of our GWT application, in particular the classes that travel through GWT calls, these exceptions are generated for many users for a few hours:

com.google.gwt.user.client.rpc.SerializationException: Type '.....' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.For security purposes, this type will not be serialized.: instance = .....

We think that this is due to browsers caching the previous (old) code which is no longer aligned with the server code.  We have reviewed all HTTP headers related to caching and all of the are, we think, correctly configured.

So our plan is to force a reload of the browser page with a location.reload(true) when we detect that the SerializationException is being thrown at the server.  Any ideas about how to implement this easily?  Our code if full of AsyncCallback calls and we would like to avoid editing each one of them.  Is there a place where we could insert a client code that would be executed for every RPC call and that will call location.reload(true) if a SerializationException is thrown ?

Thanks!

--
You received this message because you are subscribed to the Google Groups "GWT Users" 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 https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "GWT Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/Kt9DygTyQ-U/unsubscribe.
To unsubscribe from this group and all its topics, 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 https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "GWT Users" 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 https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment