Hi Thomas. Sorry for this bit of thread necromancy, but this issue is still 
a big pain for us. I think I've figured out what's going on. We currently 
use ValueProxy objects that aren't contained inside an EntityProxy. And our 
ValueProxy objects don't have an @Id annotated field. So they would have no 
stableId associated with them right? According to the RequestFactory 
documentation:

"Unlike an EntityProxy, a ValueProxy is not required to expose an ID and 
version. ValueProxy is often used to represent embedded object types within 
entities"

So that means ValueProxy doesn't have to have its own ID, and it is only 
usually (but not always) contained in an Entity... So sounds to me like its 
not a bug for a ValueProxy to lack a stableId, so a null check on the 
stable ID in ValueProxyCategoy doesn't seem that crazy to me. What am I 
missing? Is the documentation not correct should it say "ValueProxy objects 
don't need to have their own ID, but if they don't they must be contained 
within an EntityProxy?".

It's definitely a very strange use case. This wouldn't be so hard for us 
except that we are using ValueProxy beans that are autogenerated for us, 
and it is not trivial to simply slap an @Id on one of the columns.

Thanks,

On Thursday, July 12, 2012 2:19:51 AM UTC-7, Thomas Broyer wrote:
>
>
> On Thursday, July 12, 2012 2:56:06 AM UTC+2, Eric Friesen wrote:
>>
>> This occurs in the ValueProxyCategory:
>>
>>
>> http://code.google.com/searchframe#T04cSGC7sWI/trunk/user/src/com/google/web/bindery/requestfactory/shared/impl/ValueProxyCategory.java&q=ValueProxyCategory%20package:google-web-toolkit%5C.googlecode%5C.com&l=42
>>
>> It's causing our project to not be able to compare our AutoBean objects 
>> returned to us from RequestFactory requests. Would a change to check 
>> whether the AutoBeans have stable ids in the first place before trying to 
>> compare their proxy classes be acceptable? Or am I missing something in the 
>> big picture here and it's a bad idea. As far as I can tell it's an 
>> optimization to fail early without having to do a deep equals and this 
>> change would be alright. If this sounds reasonable I'll put in a fix for 
>> review.
>>
>
> The thing is: stableId shouldn't ever be 'null', that'd be a bug.
> Maybe you create a ValueProxy AutoBean without using 
> RequestContext#create(); that's not supported, that'd be a bug in your code.
>

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to