07-29-06 06:11 PM
[ http://issues.apache.org/jira/brows...ON-176?page=all ]
Graham Dumpleton resolved MODPYTHON-176.
----------------------------------------
Fix Version/s: 3.3
Resolution: Fixed
Fixed, but did not deal with issue of autosaving. That can be revisited late
r if it ever becomes a problem.
> PSP.run() should not unlock session if it didn't create it.
> -----------------------------------------------------------
>
> Key: MODPYTHON-176
> URL: http://issues.apache.org/jira/browse/MODPYTHON-176
> Project: mod_python
> Issue Type: Improvement
> Affects Versions: 3.2.8
> Reporter: Graham Dumpleton
> Assigned To: Graham Dumpleton
> Priority: Minor
> Fix For: 3.3
>
>
> When PSP.run() is exiting, it unlocks the session even if it had not creat
ed the session object in the first place. In other words, it still unlocks t
he session if it was inherited by using that already stored as req.session.
> By rights it should not unlock the session object when it is inherited from req.se
ssion as that causes limitations when PSP objects are being used explicitly as a tem
plating system from publisher or other handlers. Specifically, it would prevent the
han
dler which used the PSP object making changes to the session object after PSP.run() has been
called and then doing a subsequent save of the session.
> That session locks should not perhaps be unlocked by PSP.run() was first m
entioned in MODPYTHON-38. Note that the session still gets unlocked, but by
a cleanup handler registered by the session object when it was first created
.
> At the same time, it could be said that PSP.run() shouldn't call save on the sessi
on automatically when the session object is inherited and that the save should be le
ft up to the handler making use of the PSP object in these situations. Existing use
of
the PSP objects would need to be evaluated to determine if disabling autosav
e would cause issues for existing code if such a change were to be made for
when session object inherited. A better option may be to add an additional a
rgument run PSP.run() calle
d autosave which defaults to True to preserve existing behaviour, but allow
explicit users of PSP objects to change the behaviour if required. This all
gets a bit complicated when error pages come into the picture though, so mor
e thought needed on this la
tter point of autosave.
[ Post a follow-up to this message ]
|