mNumMessages = 0;
mNumMessages.set(0);
        public void read(InputStream stdout, InputStream stderr) {            try {                mScanStartTime = System.currentTimeMillis();                QueueItemVisitor v = new QueueItemVisitor();                if (ZimbraLog.rmgmt.isDebugEnabled()) ZimbraLog.rmgmt.debug("starting scan with visitor id=" + v.mId + " " + mDescription);                // This is a long running if the mail queues are backed up                clearIndexInternal();                openIndexWriter();                mNumMessages = 0;                RemoteResultParser.parse(stdout, v);                closeIndexWriter();                mScanEndTime = System.currentTimeMillis();                if (ZimbraLog.rmgmt.isDebugEnabled()) ZimbraLog.rmgmt.debug("finished scan with visitor id=" + v.mId + " total=" + mNumMessages + " " + mDescription);                byte[] err = ByteUtil.getContent(stderr, 0);                if (err != null && err.length > 0) {                	ZimbraLog.rmgmt.error("error scanning " + this + ": " + new String(err));                }            } catch (IOException ioe) {                error(ioe);            } finally {                synchronized (mScanLock) {                    mScanInProgress = false;                    mScanLock.notifyAll();                }            }        }