indexPaths.addAll(badIndexTracker.getIndexPaths());
indexPaths.addAll(badIndexTracker.getIndexPaths());
indexPaths.addAll(badIndexTracker.getIndexPaths());
@Override public TabularData getBadIndexStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(LuceneIndexMBeanImpl.class.getName(), "Lucene Bad Index Stats", BadIndexStats.TYPE, new String[]{"path"}); tds = new TabularDataSupport(tt); Set<String> indexes = indexTracker.getBadIndexTracker().getIndexPaths(); for (String path : indexes) { BadIndexTracker.BadIndexInfo info = indexTracker.getBadIndexTracker().getInfo(path); if (info != null){ BadIndexStats stats = new BadIndexStats(info); tds.put(stats.toCompositeData()); } } } catch (OpenDataException e) { throw new IllegalStateException(e); } return tds; }
@Override public TabularData getBadIndexStats() { TabularDataSupport tds; try { TabularType tt = new TabularType(LuceneIndexMBeanImpl.class.getName(), "Lucene Bad Index Stats", BadIndexStats.TYPE, new String[]{"path"}); tds = new TabularDataSupport(tt); Set<String> indexes = indexTracker.getBadIndexTracker().getIndexPaths(); for (String path : indexes) { BadIndexTracker.BadIndexInfo info = indexTracker.getBadIndexTracker().getInfo(path); if (info != null){ BadIndexStats stats = new BadIndexStats(info); tds.put(stats.toCompositeData()); } } } catch (OpenDataException e) { throw new IllegalStateException(e); } return tds; }
@Test public void basics() throws Exception{ tracker.markBadIndexForRead("foo", new Exception()); assertThat(tracker.getIndexPaths(), hasItem("foo")); assertTrue(tracker.isIgnoredBadIndex("foo")); tracker.markGoodIndex("foo"); assertFalse(tracker.isIgnoredBadIndex("foo")); }
@Test public void recheckDelay() throws Exception{ tracker = new BadIndexTracker(100); tracker.setTicker(ticker); tracker.markBadIndexForRead("foo", new Exception()); ticker.addTime(50, TimeUnit.MILLISECONDS); assertTrue(tracker.isIgnoredBadIndex("foo")); ticker.addTime(30, TimeUnit.MILLISECONDS); assertTrue(tracker.isIgnoredBadIndex("foo")); //Now cross the threshold ticker.addTime(30, TimeUnit.MILLISECONDS); assertFalse(tracker.isIgnoredBadIndex("foo")); //However index is still considered bad assertThat(tracker.getIndexPaths(), hasItem("foo")); }
indexNode.release(); assertTrue(tracker.getBadIndexTracker().getIndexPaths().isEmpty()); assertTrue(tracker.getBadIndexTracker().getIndexPaths().contains("/oak:index/foo"));