Hi I just found this thread...

I've gone ahead and filed an issue with a suggested fix for the
gaeutilities project on github. I'm pretty behind on getting stuff in
for that project, I'm not using appengine a lot at the moment. I'll
try to get to it when i can, of if someone is feeling fiesty enough to
provide a patch I'd be happy to apply it.

http://github.com/joerussbowman/gaeutilities/issues/issue/13

On Mar 8, 11:25 am, Sümer Cip <[email protected]> wrote:
> Of course this approach is only valid if I can guarantee no subsequent put()
> operations will happen in a single request which in my case unlikely. Or is
> there a better generic approach you can suggest?
>
>
>
>
>
> On Mon, Mar 8, 2010 at 4:09 PM, Sümer Cip <[email protected]> wrote:
> > Yes, exactly, I finally found the problem yesterday, gaeutlities session
> > behaves different on each object. So how about this solution: I have a base
> > handler class for all the handlers and what I added is to refresh the user
> > param from the datastore for every __init__ function. How that sounds?
>
> > class scRequestHandler(webapp.RequestHandler):
> >     def __init__(self):
> >         webapp.RequestHandler.__init__(self)
> >         self.Session = scSession()
> >         # reload the user object, this is because the refeernce property in
> > the Session
> >         # object is somehow pickled and the put() operation does not update
> > the real entity.
> >         # even though they have the same keys().
> >         # The solution is to get the user from DS for every request.
> >         if self.Session.user:
> >             self.Session.user = db.get(self.Session.user.key())
>
> > On Mon, Mar 8, 2010 at 2:55 PM, Nick Johnson (Google) <
> > [email protected]> wrote:
>
> >> Hi Sumer,
>
> >> You're storing an entity in the session, and unless the gaeutilities
> >> session object handles this specially, this results in it pickling the
> >> 'user' entity and storing it in the session. Calling .put() on the user
> >> object will update the datastore with the new value, but won't change the
> >> pickled value the session object is storing. Next request, it will
> >> deserialize the same data it did previously, with no update.
>
> >> -Nick Johnson
>
> >> On Sat, Mar 6, 2010 at 2:22 PM, Sumer Cip <[email protected]> wrote:
>
> >>> Hi all,
>
> >>> Below is the code code I am using in my tests to update a reference
> >>> tied to my session, the session object I use if from gaeutilities
> >>> (wrapped it a little). I put a reference object in the session and all
> >>> working fine.
>
> >>>        if not self.Session.user:
> >>>            user = scMember.all().filter("name = ",
> >>> "testmember").get()
> >>>            self.Session.user = user
> >>>        else:
> >>>            self.Session.user.playcount += 1
> >>>            self.Session.user.put()
>
> >>> The problem with this code is the put() is not working, if I do not
> >>> restart app engine SDK. In the error scenario, user is set into the
> >>> session object, and in the second request I can update the playcount
> >>> only once. BUt the subsequent operations fail without any notice of
> >>> error and playcount stays "1" everytime even I have incremented it.
> >>> This is the testhandler and there is no other code running paralelly.
> >>> When I restart the SDK, the problem goes away, it works fine.
> >>> So, I am not sure if I am doing something wrong, it took me 6 hours to
> >>> identify this thing.
>
> >>> Any help will be appericiated.
>
> >>> Thanks,
>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups
> >>> "Google App Engine" group.
> >>> To post to this group, send email to [email protected].
> >>> To unsubscribe from this group, send email to
> >>> [email protected]<google-appengine%2Bunsubscrib
> >>>  [email protected]>
> >>> .
> >>> For more options, visit this group at
> >>>http://groups.google.com/group/google-appengine?hl=en.
>
> >> --
> >> Nick Johnson, Developer Programs Engineer, App Engine
> >> Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
> >> 368047
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "Google App Engine" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected]<google-appengine%2Bunsubscrib
> >>  [email protected]>
> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/google-appengine?hl=en.
>
> > --
> > Sumer Cip
>
> --
> Sumer Cip

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
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-appengine?hl=en.

Reply via email to