Hi,
I was going through the Persistence mechanism implementations in
Tapestry 4.0.2 and came across the following behaviour:
----------------------
For properties marked as @Persist("session"), the mutator(setter)
stores the value in a instance variable and also puts it into session
using the corresponding persistence strategy. But the accessor
(getter) just fetches the value stored in the instance variable and
does not check for an updated value within the session.
----------------------
This entire approach works fine until we start getting multiple
simultaneous requests within the same session (which is possible when
using asynchronous requests).
Here's a sample scenario where the above approach may cause a problem:
----------------------
Assume that 2 asynchronous requests (say 2 lookups) are running of
the same page (same page class, but 2 different instances),
simultaneously.
If Request#1 updates an @Persist("session") property value, Request#2
will not see this updated value as the accessor of that property.
----------------------
Is what I have mentioned here right? Or is there something in the
code that escaped my notice?
- Navin
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]