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);
}