This works fine in production mode, but I get an empty cell in dev mode, and if I try to call props.timestamp() myself in dev mode, the Date object it returns is null. The date in JSON is an ISO_8601 format string.

This all works great in production, but I need dev mode too. Does anyone have an idea what's going wrong or how I can debug this?

All the generated ValueProvider is doing is calling the Date getTimestamp() method on your bean - if that returns null, then this too much return null. If you can confirm that the models do not return null when their getter is called, but that the generated ValueProvider does return null anyway, more code will help us to discover why this is happening.

If that autobean property is null in dev mode, but not in prod mode, that suggests a bug in how your json is being turned into an AutoBean. That work is done in the GWT class com.google.web.bindery.autobean.shared.impl.StringQuoter.tryParseDate. This should be called the first time that each property is read, to see what the String value is, and translate it to a Date.

If you can provide a testcase, with a JSON string and the autobean, autobeanfactory that can read it, this will help us to see if it is a formatting issue, GWT AutoBean issue, or GXT PropertyAccess issue.

Thanks for pointing me at the StringQuoter.tryParseDate function. Breaking in that I found that our ISO-8601 date string did not have a trailing "Z" on the end. Leaving off the Z is legal, if not recommended because it's ambiguous. Like I said, it works fine in production mode, but dev mode was silently returning null. So it looks like an inconsistency in GWT's date parsing.

I had our server guy add a 'Z' to the string and now it's working fine.

But in the production mode a super source version is used that is a implementation that work only on javascript (client code). This implentation is on GWT /user/super/com/google/web/bindery/autobean/super/com/google/web/bindery/autobean/shared/impl/StringQuoter.java

So in client code you can see it is using the constructor of the javscript Date object. This constructor can deal with many ISO8601 formats allowing you to work with TimeZone info or not. For that reason your code works on production.

Be aware that when you put timezone data, the parser may be adjusting time and dates values from UTC to local ones. It depends of the implemetation and configuration of the iso parser.