@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
final int refCount = searcher.getSearcher().getIndexSearcher().getIndexReader().getRefCount(); if (refCount <= 0) {
@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
/** * @return true if the reader is null or closed */ private boolean readerClosed() { return reader == null || reader.getRefCount() == 0; }
@Override public int getRefCount() { return in.getRefCount(); }
@Override public int getRefCount() { return this.delegate.getRefCount(); }
private void assertAllReadersAreClosed() { for (IndexReader r : openedReaders){ if (r.getRefCount() != 0){ String msg = String.format("Unclosed reader found with refCount %d for index %s", r.getRefCount(), toString()); throw new IllegalStateException(msg); } } }
private void assertAllReadersAreClosed() { for (IndexReader r : openedReaders){ if (r.getRefCount() != 0){ String msg = String.format("Unclosed reader found with refCount %d for index %s", r.getRefCount(), toString()); throw new IllegalStateException(msg); } } }
@Override protected int getRefCount(SearcherAndTaxonomy reference) { return reference.searcher.getIndexReader().getRefCount(); } }
@Override protected int getRefCount(SearcherAndTaxonomy reference) { return reference.searcher.getIndexReader().getRefCount(); } }
@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
@Override protected int getRefCount(IndexSearcher reference) { return reference.getIndexReader().getRefCount(); }
@Override public void finish() { if (null != indexReader) { try { int referenceCount = indexReader.getRefCount(); if (referenceCount > 0) { indexReader.decRef(); if (null != indexSearcherMap) { indexSearcherMap.clear(); } } } catch (IOException e) { LOGGER.error("Ignoring the exception, Error while closing the lucene index reader", e); } } } }
AssertingSearcher(IndexSearcher indexSearcher, final Engine.Searcher wrappedSearcher, ShardId shardId, Logger logger) { super(wrappedSearcher.source(), indexSearcher); // we only use the given index searcher here instead of the IS of the wrapped searcher. the IS might be a wrapped searcher // with a wrapped reader. this.wrappedSearcher = wrappedSearcher; this.logger = logger; this.shardId = shardId; initialRefCount = wrappedSearcher.reader().getRefCount(); assert initialRefCount > 0 : "IndexReader#getRefCount() was [" + initialRefCount + "] expected a value > [0] - reader is already closed"; }
@Override public int doLogic() throws IOException { IndexReader reader = getRunData().getIndexReader(); getRunData().setIndexReader(null); if (reader.getRefCount() != 1) { System.out.println("WARNING: CloseReader: reference count is currently " + reader.getRefCount()); } reader.decRef(); return 1; }
@Override public void close() { synchronized (lock) { if (closed.compareAndSet(false, true)) { firstReleaseStack = new RuntimeException(); final int refCount = wrappedSearcher.reader().getRefCount(); // this assert seems to be paranoid but given LUCENE-5362 we better add some assertions here to make sure we catch any potential // problems. assert refCount > 0 : "IndexReader#getRefCount() was [" + refCount + "] expected a value > [0] - reader is already closed. Initial refCount was: [" + initialRefCount + "]"; try { wrappedSearcher.close(); } catch (RuntimeException ex) { logger.debug("Failed to release searcher", ex); throw ex; } } else { AssertionError error = new AssertionError("Released Searcher more than once, source [" + wrappedSearcher.source() + "]"); error.initCause(firstReleaseStack); throw error; } } }
@Override public boolean hasNext() { final boolean hasNext = index < (totalHits - deletedMatchCount); if (!hasNext) { final IndexSearcher searcher = queryContext.getSearcher(); if (searcher.getIndexReader().getRefCount() > 1) { engine.release(searcher); } } return hasNext; }
public void resetIndexReader() { IndexReader currentIndexReader = null; if (indexShard.state() == IndexShardState.STARTED) { try (Engine.Searcher currentIndexSearcher = indexShard.acquireSearcher( "suggest" )) { currentIndexReader = currentIndexSearcher.reader(); } } // if this index reader is not used in the current index searcher, we need to decrease the old refcount if (indexReader != null && indexReader.getRefCount() > 0 && !indexReader.equals(currentIndexReader)) { try { indexReader.decRef(); } catch (IOException e) { logger.error("Error decreasing indexreader ref count [{}] of shard [{}]", e, indexReader.getRefCount(), shardId); } } indexReader = null; }