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
http://tractionsoftware.com
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.
-Andy