Just noticed: you're saying you have an "Unfrozen bean with null
RequestContext" assertion error?
If that's the case (wrt "AutoBean has been frozen" error as originally
reported in this thread), can you put a breakpoint in
AbstractRequestContext's checkStreamsNotCrossed and try to understand which
proxy is causing the issue? (that's only a start, but could help build a
testcase)
On Thursday, January 17, 2013 4:21:48 AM UTC+1, bloo wrote:
>
> Hi Thomas - I was not tracking my own question here! I apologize. I'm
> still hacking around this - that is, returning my new instance from my
> InstanceRequest "persist()", then turning around and doing a
> find(response.stableId()) on it to get a usable EntityProxy. I'll paste the
> wire data below - it was the smallest back-and-forth in my app I could
> find. Let me know if you need me to dig something else up for this or help
> decipher anything.
>
> >>>
> {"F":"com.app.web.shared.bindery.AppServiceRequestFactory","I":[{"O":"gYfjUQeKypl3aT70L$lmyH$je_Q=","P":[[]]}]}
> >>>
> {"F":"com.app.web.shared.bindery.AppInstanceRequestFactory","I":[{"O":"mZy6R_9WbCm4npb8ui4de53bLjM=","P":[{"R":"1","C":1,"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ="}],"R":["product.type","images"]}],"O":[{"O":"PERSIST","R":"1","C":1,"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ=","P":{"product":{"R":"1","C":2,"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow="},"vendor":{"S":"IjQi","T":"NMnlePAPPa8$chg1XXK6I_qmRTc="},"defaultQuantity":100,"defaultUnit":"lb.","name":"foo","defaultPrice":"10","images":[]}},{"O":"PERSIST","R":"1","C":2,"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow=","P":{"type":{"S":"IjEi","T":"vCoN_GmihaJOTBwUCW2N_JPjlaY="},"name":"foo"}},{"O":"UPDATE","S":"IjEi","T":"vCoN_GmihaJOTBwUCW2N_JPjlaY=","V":"MC4w"}]}
> <<< {"S":[true],"I":[null]}
> <<<
> {"S":[true],"O":[{"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ=","V":"MC4w","P":{"product":{"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow=","S":"IjkwIg=="},"id":"90","defaultQuantity":100,"name":"foo","images":[],"defaultUnit":"lb.","active":true,"defaultPrice":"10"},"S":"IjkwIg==","C":1,"O":"PERSIST"},{"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow=","V":"MC4w","P":{"name":"foo","type":{"T":"vCoN_GmihaJOTBwUCW2N_JPjlaY=","S":"IjEi"}},"S":"IjkwIg==","C":2,"O":"PERSIST"},{"T":"NMnlePAPPa8$chg1XXK6I_qmRTc=","V":"Ni4w","S":"IjQi","O":"UPDATE"},{"T":"vCoN_GmihaJOTBwUCW2N_JPjlaY=","V":"MC4w","P":{"name":"Other"},"S":"IjEi","O":"UPDATE"}],"I":[{"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ=","S":"IjkwIg=="}]}
> >>>
> {"F":"com.app.web.shared.bindery.AppInstanceRequestFactory","I":[{"O":"?","P":[{"S":"IjkwIg==","T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ="}],"R":["product.type","images"]}]}
> <<<
> {"S":[true],"O":[{"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ=","V":"MC4w","P":{"product":{"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow=","S":"IjkwIg=="},"id":"90","defaultQuantity":100,"name":"foo","images":[],"defaultUnit":"lb.","active":true,"defaultPrice":"10.00"},"S":"IjkwIg==","O":"UPDATE"},{"T":"UCoe6wjm6hP1YdFtuSowpMxJ0ow=","V":"MC4w","P":{"name":"foo","type":{"T":"vCoN_GmihaJOTBwUCW2N_JPjlaY=","S":"IjEi"}},"S":"IjkwIg==","O":"UPDATE"},{"T":"vCoN_GmihaJOTBwUCW2N_JPjlaY=","V":"MC4w","P":{"name":"Other"},"S":"IjEi","O":"UPDATE"}],"I":[{"T":"lUUyvXo8bCZWuM6Ew6LR72oN2nQ=","S":"IjkwIg=="}]}
>
>
> (I have a hunch that on the server side, an incomplete @Entity is being
> passed to the GWT serializing code before the @Transaction demarcation
> completes and the entity in memory is totally updated. Hunch.. I am not
> certain.)
>
>
> On Wednesday, October 17, 2012 2:22:21 PM UTC-4, Thomas Broyer wrote:
>>
>>
>>
>> On Wednesday, October 17, 2012 7:57:33 PM UTC+2, bloo wrote:
>>>
>>> Hi David,
>>>
>>> I hate to bring up an old thread, but I noticed this happening with my
>>> switch from 2.4.0 to 2.5.0. I am using JPA/Hibernate on the backend, and
>>> my entity instance's persist() method returns "this" on the server. It
>>> stopped working with 2.5.0 with the Unfrozen bean error - BUT, it only
>>> happens when you persist an entity for the first time (not subsequent
>>> perists for update).
>>>
>>> Just wondering if you have any insight into what would cause this. I'm
>>> working around this by calling Request.find(EntityStableId) after the
>>> successful persist() call ONLY IF it was a new object being persisted (it
>>> is not necessary to do that for subsequent updates to the object).
>>>
>>
>> Could you post the payloads exchanged? (capture them with your browser,
>> Wireshark, or set the gwt.rpc.dumpPayload system property to true on your
>> server and it'll print them to System.out)
>> Preferably the smallest request that fails so it's easier to read ;-)
>>
>
--
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/-/VAGe0U9NmqkJ.
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.