Today I've had a look at continuation invalidation. I found following code fragment in the ContinuationManagerImpl:
// REVISIT: This places only the "leaf" nodes in the expirations Sorted Set. // do we really want to do this? if (parent.getChildren().size() < 2) { expirations.remove(parent); }
Is it right that this means that only if a leaf continuation expires, the continuations tree is walked up and parent continuations are checked whether they have expired?
If you have a long expiration time set, does it mean that the whole! tree is never checked for invalidation? (If you have a system with hundreds of users that are logged in that quickly leads to memory problems ...)
If I'm right I think of making the ContinuationsManagerImpl inheritable (currently some protected methods and constructors prevent this) so that the expiration strategy can be overriden. comments? objections?
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc --------------------------------------------------------------------