Package org.eclipse.rdf4j.sail.lucene
Class AbstractReaderMonitor
- java.lang.Object
-
- org.eclipse.rdf4j.sail.lucene.AbstractReaderMonitor
-
public abstract class AbstractReaderMonitor extends java.lang.ObjectReaderMonitor holds IndexReader and IndexSearcher. When ReaderMonitor is closed it do not close IndexReader and IndexSearcher as long as someone reads from them. Variable readingCount remember how many times it was read.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBooleanclosedprivate java.util.concurrent.atomic.AtomicBooleandoCloseprivate AbstractLuceneIndexindexprivate java.util.concurrent.atomic.AtomicIntegerreadingCount
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractReaderMonitor(AbstractLuceneIndex index)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidbeginReading()voidclose()booleancloseWhenPossible()This method is called in LecenIndex invalidateReaders or on commitvoidendReading()called by the iteratorintgetReadingCount()protected abstract voidhandleClose()This method is thread-safe (i.e.
-
-
-
Field Detail
-
readingCount
private final java.util.concurrent.atomic.AtomicInteger readingCount
-
doClose
private final java.util.concurrent.atomic.AtomicBoolean doClose
-
index
private final AbstractLuceneIndex index
-
closed
private final java.util.concurrent.atomic.AtomicBoolean closed
-
-
Constructor Detail
-
AbstractReaderMonitor
protected AbstractReaderMonitor(AbstractLuceneIndex index)
-
-
Method Detail
-
getReadingCount
public final int getReadingCount()
-
beginReading
public final void beginReading()
-
endReading
public final void endReading() throws java.io.IOExceptioncalled by the iterator- Throws:
java.io.IOException
-
closeWhenPossible
public final boolean closeWhenPossible() throws java.io.IOExceptionThis method is called in LecenIndex invalidateReaders or on commit- Returns:
trueif the close succeeded,falseotherwise.- Throws:
java.io.IOException
-
close
public final void close() throws java.io.IOException- Throws:
java.io.IOException
-
handleClose
protected abstract void handleClose() throws java.io.IOExceptionThis method is thread-safe (i.e. it is not called concurrently).- Throws:
java.io.IOException
-
-