@Override public void run() { try { if(!forceRebuild) { LOG.info("Doing scan of index: {}", index); IndexScanReport report = index.scan(ScanIntent.DETECT_INCOMPLETE, new IndexItemIterator(recordIterator)); if(report.getState() == IndexState.INVALID) { LOG.info("Index: {} state is invalid, completeness: {}, starting rebuild", index, report.getCompleteness()); recordIterator.reset(); index.rebuildIndex(new IndexItemIterator(recordIterator)); LOG.info("Index: {} rebuild completed", index); } else { LOG.info("Index: {} scan completed, state ok", index); } } else { LOG.info("Doing index: {} rebuild", index); index.rebuildIndex(new IndexItemIterator(recordIterator)); LOG.info("Index: {} rebuild completed", index); } } catch(JasDBStorageException e) { LOG.error("Unable to rebuild the index", e); } }