Friday, November 30, 2012

Strange RPC regression in GWT 2.5

I'm not logging an issue yet because I don't have nearly enough information to attempt to document the issue. Instead, I wanted to share what I'm seeing and to see if anyone else has had a similar experience.

For some background, we have a mature GWT application and have been happily using GWT in production since around 1.5 and were experimenting with it a little before that. The code that is suddenly causing issues hasn't been touched in a while. The product is TeamPage at

The issue is as follows:

* About 50% of the time when clicking and holding a hash style link and selecting "Open in New Tab" on iOS 6, part of the RPC response is not properly deserialized. It can also happen when clicking a link from an email message that opens in Safari in a new tab.

As you can imagine, we've been struggling to diagnose this. It only happens in iOS6 and only when opening in a new tab or a fresh view. We have not seen any similar issues in any other browsers.

I tried a GWT build from r11390 and it still happens. I reverted to GWT 2.4 and the problem went away.

We have an RPC service method that looks like this:

    public ViewData get(ViewRequest request) throws GwtTractionException;

The ViewData object returned looks like this:

    public final class ViewData implements ViewContent, GetProperty2 {
        private String name;
        private HashMap<String,String> properties = new HashMap<String,String>();
        private HashMap<String,ArrayList<ViewContent>> content;

ViewContent is a simple marker interface for Objects that can be sent back as view content. Since ViewData implements ViewContent, we often have a recursive tree of ViewData, but a few other objects implement ViewContent as well.

    public interface ViewContent extends IsSerializable {}

* The problem is that content comes back empty, when in fact it should have data. properties and name are properly deserialized and non-empty. content is undefined.

I've inspected with wireshark and the RPC payload is identical in cases that work and fail. As I mentioned, it only fails 50% of the time. When it fails, the value of "content" in javascript is undefined and a ViewContent implementation that we expect to be there causes an UmbrellaException with TypeError of 'null' is not an object.

So my questions are as follows:

1) Is anyone else seeing strange RPC issues from iOS 6 when opening links in new tabs?

2) Does anyone have a suggestion on where I should look in GWT src to investigate the issue?

Sorry this is so vague. I'm happy to provide any more information that might be helpful.


You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

No comments:

Post a Comment