On Monday, June 20, 2011 7:44:56 PM UTC+2, Ryan McFall wrote:
>
> I haven't changed the collection, and SurveyProxy is an EntityProxy,
> not a value proxy. Here's the code from SimpleRequestProcessor that
> handles this:
> public boolean visitReferenceProperty(String propertyName, AutoBean<?>
> value, PropertyContext ctx) {
> // containsKey to distinguish null from unknown
> if (flatValueMap.containsKey(propertyName)) {
> Class<?> elementType = ctx instanceof CollectionPropertyContext ?
> ((CollectionPropertyContext) ctx).getElementType() : null;
> Object newValue = EntityCodex.decode(state, ctx.getType(),
> elementType, flatValueMap.get(propertyName));
> Object resolved = state.getResolver().resolveDomainValue
> (newValue, false);
> service.setProperty(domain, propertyName,
> service.resolveDomainClass(ctx.getType()), resolved);
> }
> return false;
> }
>
> There's nothing here that checks whether the collection has been
> changed. So unless this is supposed to happen on the client side (so
> that the survey permissions object doesn't exist in the payload at
> all, and therefore doesn't get visited), I don't see any way for this
> to happen. Should client side code be handling this?
Absolutely! That's one of the features of RequestFactory to only send diffs
from client to server.
> I can debug
> through there and try to figure out what's happening if need be.
It might be
http://code.google.com/p/google-web-toolkit/issues/detail?id=5952
But I still believe you should (independently of RequestFactory) rewrite
your setter, otherwise the issue will surface later as some other code will
call it.
--
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/-/XZZ4d-6xxE0J.
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.