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
--------------------------------------------------------------------




Reply via email to