There's code in StandardSession that looks like this:
public void expire(boolean notify) if (expiring) return; expiring = true; The test isn't thread safe, and it looks like it's possible to have expire() called from the StandardManager reaper thread and a servlet thread (through invalidate) simultaneously. 'expiring' is tested in other places in StandardSession, but I'm not sure enough of the possible call paths to tell offhand if they're also dangerous. I think it would be enough to declare expire volatile and put a synchronized block around the test-and-set in expire(), but I wanted to double check my logic before I submitted a patch... -- Christopher St. John [EMAIL PROTECTED] DistribuTopia http://www.distributopia.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>