Thanks for the help interpreting the JSON. After I posted the original message I noted that it looked like only objects referenced in collections were being updated.
The interesting part of your description of how the diffs are built is that I took the call to RequestContext#edit on the proxy out, to see what would happen if I tried to save the original proxy object. The JSON string I posted actually came from doing that, so something is definitely strange. If I do execute the edit method, the generated JSON is the same. Do you know offhand in which class the diff is built, so that I can look to see if the bug that you pointed out is indeed the source of the problem? Thanks, Ryan On Jun 20, 4:45 pm, Thomas Broyer <t.bro...@gmail.com> wrote: > On Monday, June 20, 2011 9:08:31 PM UTC+2, Ryan McFall wrote: > > > Implementing the setSurveyPermissions method as you suggested seems to > > have helped a bit. However, I'm still a bit confused as to what the > > client-side behavior I'm seeing should be. > > > As I mentioned, I retrieve and then send an object, and don't make any > > modifications to the object on the client. But when I look at the > > operations in SimpleRequestProcessor.processOperationMessages, I see > > the following as the result of the call to req.getOperations. > > Basically, this looks like every object referenced by the Survey proxy > > object is being sent over the network and some of them are marked as > > needing update. Am I right in that interpretation? > > Actually, only the "stable IDs" of the referenced objects are sent (T=type, > S=server ID, they are IdMessage objects; top level objects –the ones with a > "P" property and/or "UPDATE" operation– are OperationMessage). > I interpret this as meaning it thinks the collection has changed, which > could very well be a manifestation of the issue I already linked to. > > If so, I'm not sure why this is happening. Does the client keep track > > > of method calls to determine what needs to be updated, or something > > else? > > When you RequestContext#edit() a proxy, a mutable copy is created; and when > you fire(), the diff is built by comparing with the immutable version (using > AutoBeanUtils.diff that's mentionned in the issue report). > I'm not sure what the UPDATE means here (I don't remember). -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-toolkit@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.