You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2010/04/06 22:38:14 UTC
svn commit: r931314 - in /lucene/dev/trunk/lucene:
backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java
src/java/org/apache/lucene/index/DirectoryReader.java
src/test/org/apache/lucene/index/TestIndexWriterReader.java
Author: mikemccand
Date: Tue Apr 6 20:38:14 2010
New Revision: 931314
URL: http://svn.apache.org/viewvc?rev=931314&view=rev
Log:
LUCENE-1976: fix again for 3.1 (fix was temporarily lost in flex merge)
Modified:
lucene/dev/trunk/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
Modified: lucene/dev/trunk/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=931314&r1=931313&r2=931314&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/backwards/src/test/org/apache/lucene/index/TestIndexWriterReader.java Tue Apr 6 20:38:14 2010
@@ -86,7 +86,7 @@ public class TestIndexWriterReader exten
// get a reader
IndexReader r1 = writer.getReader();
- //assertTrue(r1.isCurrent());
+ assertTrue(r1.isCurrent());
String id10 = r1.document(10).getField("id").stringValue();
@@ -94,7 +94,7 @@ public class TestIndexWriterReader exten
newDoc.removeField("id");
newDoc.add(new Field("id", Integer.toString(8000), Store.YES, Index.NOT_ANALYZED));
writer.updateDocument(new Term("id", id10), newDoc);
- //assertFalse(r1.isCurrent());
+ assertFalse(r1.isCurrent());
IndexReader r2 = writer.getReader();
assertTrue(r2.isCurrent());
@@ -157,7 +157,7 @@ public class TestIndexWriterReader exten
IndexReader r0 = writer.getReader();
assertTrue(r0.isCurrent());
writer.addIndexesNoOptimize(new Directory[] { dir2 });
- //assertFalse(r0.isCurrent());
+ assertFalse(r0.isCurrent());
r0.close();
IndexReader r1 = writer.getReader();
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DirectoryReader.java?rev=931314&r1=931313&r2=931314&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DirectoryReader.java Tue Apr 6 20:38:14 2010
@@ -56,6 +56,7 @@ class DirectoryReader extends IndexReade
private IndexDeletionPolicy deletionPolicy;
private Lock writeLock;
private SegmentInfos segmentInfos;
+ private SegmentInfos segmentInfosStart;
private boolean stale;
private final int termInfosIndexDivisor;
@@ -148,6 +149,7 @@ class DirectoryReader extends IndexReade
this.directory = writer.getDirectory();
this.readOnly = true;
segmentInfos = infos;
+ segmentInfosStart = (SegmentInfos) infos.clone();
this.termInfosIndexDivisor = termInfosIndexDivisor;
if (codecs == null) {
this.codecs = CodecProvider.getDefault();
@@ -930,7 +932,12 @@ class DirectoryReader extends IndexReade
@Override
public boolean isCurrent() throws CorruptIndexException, IOException {
ensureOpen();
- return SegmentInfos.readCurrentVersion(directory, codecs) == segmentInfos.getVersion();
+ if (writer == null || writer.isClosed()) {
+ // we loaded SegmentInfos from the directory
+ return SegmentInfos.readCurrentVersion(directory, codecs) == segmentInfos.getVersion();
+ } else {
+ return writer.nrtIsCurrent(segmentInfosStart);
+ }
}
@Override
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=931314&r1=931313&r2=931314&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Tue Apr 6 20:38:14 2010
@@ -84,6 +84,7 @@ public class TestIndexWriterReader exten
// get a reader
IndexReader r1 = writer.getReader();
+ assertTrue(r1.isCurrent());
String id10 = r1.document(10).getField("id").stringValue();
@@ -91,15 +92,20 @@ public class TestIndexWriterReader exten
newDoc.removeField("id");
newDoc.add(new Field("id", Integer.toString(8000), Store.YES, Index.NOT_ANALYZED));
writer.updateDocument(new Term("id", id10), newDoc);
+ assertFalse(r1.isCurrent());
IndexReader r2 = writer.getReader();
+ assertTrue(r2.isCurrent());
assertEquals(0, count(new Term("id", id10), r2));
assertEquals(1, count(new Term("id", Integer.toString(8000)), r2));
r1.close();
writer.close();
+ assertTrue(r2.isCurrent());
IndexReader r3 = IndexReader.open(dir1, true);
+ assertTrue(r3.isCurrent());
+ assertTrue(r2.isCurrent());
assertEquals(0, count(new Term("id", id10), r3));
assertEquals(1, count(new Term("id", Integer.toString(8000)), r3));
@@ -143,9 +149,18 @@ public class TestIndexWriterReader exten
createIndexNoClose(!optimize, "index2", writer2);
writer2.close();
+ IndexReader r0 = writer.getReader();
+ assertTrue(r0.isCurrent());
writer.addIndexesNoOptimize(new Directory[] { dir2 });
+ assertFalse(r0.isCurrent());
+ r0.close();
IndexReader r1 = writer.getReader();
+ assertTrue(r1.isCurrent());
+
+ writer.commit();
+ assertTrue(r1.isCurrent());
+
assertEquals(200, r1.maxDoc());
int index2df = r1.docFreq(new Term("indexname", "index2"));