> (1) You create an object and while initializing it you store a reference 
> to RunData.  A reference to this object is stored in the session.
> ...



My code doesn't store objects to RunData. Turbines does. 


Hm, the pull tools i am talking about are using TurbineServices.

These services are fetched  from Turbine with the RunData as parameter.
The services uses a key from the session to get specific data.
Just to repeat it: If rundata.isDisposed --> session is null --> NPE.

This approach was designed by Henning Schmiedehausen a while ago, so I
assume thats ok. This was with turbine version 2.3.1 resp 2.3.2-rc1

Maybe we shouldn't have upgraded to 2.3.3. ??


My conclusion of turbine behaviour for now:

If you use simple http requests (non-ajax), you won't have too much
trouble besides some ERROR logs resulting from a disposed rundata. 
This may happen if a user doesn't wait for a long request to return, and
sends another request which overtakes the first one.
The user would not note anything, because his second request will be
performed correctly.
So, we have only errors in the log files as result. Ok, in bad designed
software it may lead to data inconsistency, but that might be too far
fetched for now.

Things get worse, if you have asynchronous ajax requests AND you use
pull tools from velocity templates to generate the response.

In this case, I suggest to refresh the rundata in all used tools per
request.

christian


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to