I believe it's really supposed to happen the way it's documented in the 
wiki.

Looking at it very closely, your request seems strange though: the 
PrimaryObject ("S" : "IjEi", "T" : "AK9V76Rtc6gMKi9lbRBXpR_Vfsc="; note: 
T=proxy type, S=server ID) references a "subobjectc" "S" : "IjEi", "T" : 
"VJdvF9mvxcVn$KJmLjACkBkrjhw=" which we don't find in the top-level "O" 
(operations) list. The instance of SubObjectC we find here has a different 
ID: "S" : "IjIi".

In processOperationMessages, the flow is to load all the objects referenced 
in the top-level "O" list (if you look into 
com.google.web.bindery.requestfactory.shared.messages, this is the 
List<OperationMessage> property of the RequestMessage) and then process 
their "P" (property map, or using the same terms as in the wiki "all 
accumulated operations"). When traversing the "subobjectc" property of the 
loaded PrimaryObject, an EntityCodex.decode() is made that's supposed to 
simply get the proxy out of the list of proxies previous decoded. In your 
case though, it's referencing an object that's not yet been seen, so it 
triggers the loadDomainObject code-path.

This is not supposed to happen as, on the client-side, as soon as you 
edit() an object, you automatically edit() all referenced objects 
recursively, and then when building the request, one OperationMessage is 
made for each edited object (this is done in AbstractRequestContext). So 
your S=IjEi SubObjectC should have been in the 'editedProxies' list and 
should have resulted in an OperationMessage. On the server-side, it would 
then have been loaded at the same time as other domain objects, and then 
simply reused from the 
"MySimpleRequestProcessor$1.visitReferenceProperty(String, AutoBean<?>, 
PropertyContext) line: 547" instead of triggering a loadDomainObject.

Are you doing anything tricky on the client-side? If so, blame yourself, 
but if you're only doing "standard" things, then please try to make a 
reduced test case and file an issue.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/C0LigUJeLM4J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to