LOG.debug("Staring work");
    public final void run() {        try {            boolean moreWork = true;            while (moreWork) {                waitForWork();                long quietPeriod = 0;                do {                    sleep(m_sleepInterval);                    quietPeriod = System.currentTimeMillis() - m_workAddedTimestamp;                                    } while(quietPeriod < m_sleepInterval);                                try {                    moreWork = work();                } catch (Throwable e) {                    LOG.error(getName() + "exception in background task.", e);                }            }        } catch (InterruptedException e) {            LOG.error(getName() + "exiting due to exception.", e);        }    }