Thread.currentThread().setName(name+" - Invalidator - "+_context.getContextPath());
if (_context!=null) Thread.currentThread().setName(name+" - Invalidator - "+_context.getContextPath());
        public void run()        {            _scavenger=Thread.currentThread();            String name = Thread.currentThread().getName();            Thread.currentThread().setName(name+" - Invalidator - "+_context.getContextPath());            int period=-1;            try{                do                {                    try {                        if (period!=_scavengePeriodMs)                        {                            if(Log.isDebugEnabled())Log.debug("Session scavenger period = "+_scavengePeriodMs/1000+"s");                            period=_scavengePeriodMs;                        }                        Thread.sleep(period>1000?period:1000);                        AbstractSessionManager.this.scavenge();                    }                    catch (InterruptedException ex){continue;}                    catch (Error e) {Log.warn(Log.EXCEPTION,e);}                    catch (Exception e) {Log.warn(Log.EXCEPTION,e);}                }                while (isStarted());            }            finally            {                AbstractSessionManager.this._scavenger=null;                String exit="Session scavenger exited";                if (isStarted())                    Log.warn(exit);                else                    Log.debug(exit);                Thread.currentThread().setName(name);            }        }