Author: chetanm Date: Thu Sep 15 07:22:34 2016 New Revision: 1760880 URL: http://svn.apache.org/viewvc?rev=1760880&view=rev Log: OAK-4412 - Lucene hybrid index
Instead of holding the reference to previous reader upon creation obtain it every time. This is required as previous NRTIndex might remain in use while new NRTIndex is getting created (IndexTracker would first open new IndexNode and then close older one). So to ensure we do not miss out on any indexed content refetch the old index everytime. if the previous index is not written to this should be cheap as same reader would be returned Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java?rev=1760880&r1=1760879&r2=1760880&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java (original) +++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/NRTIndex.java Thu Sep 15 07:22:34 2016 @@ -63,8 +63,8 @@ public class NRTIndex implements Closeab private final IndexDefinition definition; private final IndexCopier indexCopier; - private final LuceneIndexReader previousReader; private final IndexUpdateListener refreshPolicy; + private final NRTIndex previous; private IndexWriter indexWriter; private NRTIndexWriter nrtIndexWriter; @@ -79,7 +79,7 @@ public class NRTIndex implements Closeab this.definition = definition; this.indexCopier = indexCopier; this.refreshPolicy = refreshPolicy; - this.previousReader = previous != null ? previous.getPrimaryReader() : null; + this.previous = previous; } @CheckForNull @@ -115,6 +115,7 @@ public class NRTIndex implements Closeab } //Old reader should be added later + LuceneIndexReader previousReader = previous != null ? previous.getPrimaryReader() : null; if (previousReader != null) { newReaders.add(previousReader); }