You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/01/28 16:47:08 UTC
svn commit: r1237077 - in
/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index:
DirectoryReader.java IndexWriter.java SegmentReader.java
Author: rmuir
Date: Sat Jan 28 15:47:08 2012
New Revision: 1237077
URL: http://svn.apache.org/viewvc?rev=1237077&view=rev
Log:
LUCENE-3661: fix TODO, pass core to these SR ctors and remove code duplciation
Modified:
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentReader.java
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1237077&r1=1237076&r2=1237077&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/DirectoryReader.java Sat Jan 28 15:47:08 2012
@@ -166,7 +166,9 @@ final class DirectoryReader extends Base
} else {
readerShared[i] = false;
// Steal the ref returned by SegmentReader ctor:
- newReaders[i] = new SegmentReader(infos.info(i), newReaders[i], IOContext.READ);
+ assert infos.info(i).dir == newReaders[i].getSegmentInfo().dir;
+ assert infos.info(i).hasDeletions();
+ newReaders[i] = new SegmentReader(infos.info(i), newReaders[i].core, IOContext.READ);
}
}
success = true;
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1237077&r1=1237076&r2=1237077&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/IndexWriter.java Sat Jan 28 15:47:08 2012
@@ -551,7 +551,7 @@ public class IndexWriter implements Clos
}
shared = true;
if (liveDocs != null) {
- return new SegmentReader(reader, liveDocs, info.docCount - info.getDelCount() - pendingDeleteCount);
+ return new SegmentReader(reader.getSegmentInfo(), reader.core, liveDocs, info.docCount - info.getDelCount() - pendingDeleteCount);
} else {
reader.incRef();
return reader;
Modified: lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentReader.java?rev=1237077&r1=1237076&r2=1237077&view=diff
==============================================================================
--- lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentReader.java (original)
+++ lucene/dev/branches/lucene3661/lucene/src/java/org/apache/lucene/index/SegmentReader.java Sat Jan 28 15:47:08 2012
@@ -42,7 +42,7 @@ public final class SegmentReader extends
// tells us the docCount:
private final int numDocs;
- private final SegmentCoreReaders core;
+ final SegmentCoreReaders core;
/**
* @throws CorruptIndexException if the index is corrupt
@@ -74,38 +74,21 @@ public final class SegmentReader extends
}
}
- // TODO: really these next 2 ctors could take
- // SegmentCoreReaders... that's all we do w/ the parent
- // SR:
-
// Create new SegmentReader sharing core from a previous
// SegmentReader and loading new live docs from a new
// deletes file. Used by openIfChanged.
- SegmentReader(SegmentInfo si, SegmentReader parent, IOContext context) throws IOException {
- assert si.dir == parent.getSegmentInfo().dir;
- this.si = si;
-
- // It's no longer possible to unDeleteAll, so, we can
- // only be created if we have deletions:
- assert si.hasDeletions();
-
- // ... but load our own deleted docs:
- liveDocs = si.getCodec().liveDocsFormat().readLiveDocs(si.dir, si, context);
- numDocs = si.docCount - si.getDelCount();
-
- // We share core w/ parent:
- parent.core.incRef();
- core = parent.core;
+ SegmentReader(SegmentInfo si, SegmentCoreReaders core, IOContext context) throws IOException {
+ this(si, core, si.getCodec().liveDocsFormat().readLiveDocs(si.dir, si, context), si.docCount - si.getDelCount());
}
// Create new SegmentReader sharing core from a previous
// SegmentReader and using the provided in-memory
// liveDocs. Used by IndexWriter to provide a new NRT
// reader:
- SegmentReader(SegmentReader parent, Bits liveDocs, int numDocs) throws IOException {
- this.si = parent.si;
- parent.core.incRef();
- this.core = parent.core;
+ SegmentReader(SegmentInfo si, SegmentCoreReaders core, Bits liveDocs, int numDocs) throws IOException {
+ this.si = si;
+ this.core = core;
+ core.incRef();
assert liveDocs != null;
this.liveDocs = liveDocs;