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 2009/06/07 18:30:18 UTC
svn commit: r782404 - in
/lucene/java/branches/lucene_2_4_back_compat_tests/src:
java/org/apache/lucene/index/ test/org/apache/lucene/index/
Author: mikemccand
Date: Sun Jun 7 16:30:17 2009
New Revision: 782404
URL: http://svn.apache.org/viewvc?rev=782404&view=rev
Log:
LUCENE-1651: always return DirectoryReader (renamed from MultiSegmentReader) from IndexReader.open
Modified:
lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/IndexReader.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiReader.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiSegmentReader.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/SegmentReader.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiSegmentReader.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestOmitTf.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestPayloads.java
lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/IndexReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/IndexReader.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/IndexReader.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/IndexReader.java Sun Jun 7 16:30:17 2009
@@ -1134,4 +1134,9 @@
public static Collection listCommits(Directory dir) throws IOException {
return DirectoryIndexReader.listCommits(dir);
}
+
+ // NOTE: STANDIN so back-compat tests compile
+ IndexReader[] getSequentialSubReaders() {
+ return null;
+ }
}
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiReader.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiReader.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiReader.java Sun Jun 7 16:30:17 2009
@@ -369,9 +369,4 @@
IndexReader[] getSubReaders() {
return subReaders;
}
-
- // NOTE: STANDIN so back-compat tests compile
- IndexReader[] getSequentialSubReaders() {
- return subReaders;
- }
}
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiSegmentReader.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiSegmentReader.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/MultiSegmentReader.java Sun Jun 7 16:30:17 2009
@@ -437,11 +437,6 @@
return subReaders;
}
- // NOTE: STANDIN so back-compat tests compile
- IndexReader[] getSequentialSubReaders() {
- return subReaders;
- }
-
public void setTermInfosIndexDivisor(int indexDivisor) throws IllegalStateException {
for (int i = 0; i < subReaders.length; i++)
subReaders[i].setTermInfosIndexDivisor(indexDivisor);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/SegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/SegmentReader.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/SegmentReader.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/java/org/apache/lucene/index/SegmentReader.java Sun Jun 7 16:30:17 2009
@@ -1110,4 +1110,13 @@
norm.dirty = norm.rollbackDirty;
}
}
+
+ // NOTE: STANDIN so back-compat tests compile
+ static SegmentReader getOnlySegmentReader(Directory dir) throws IOException {
+ return null;
+ }
+
+ static SegmentReader getOnlySegmentReader(IndexReader reader) {
+ return null;
+ }
}
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestIndexReaderReopen.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestIndexReaderReopen.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestIndexReaderReopen.java Sun Jun 7 16:30:17 2009
@@ -319,9 +319,9 @@
IndexReader reader0 = IndexReader.open(dir1);
assertRefCountEquals(1, reader0);
- assertTrue(reader0 instanceof MultiSegmentReader);
- IndexReader[] subReaders0 = ((MultiSegmentReader) reader0).getSequentialSubReaders();
- for (int i = 0; i < subReaders0.length; i++) {
+ IndexReader[] subReaders0 = reader0.getSequentialSubReaders();
+ assertNotNull(subReaders0);
+ for (int i = 0; i < subReaders0.length; i++) {
assertRefCountEquals(1, subReaders0[i]);
}
@@ -331,8 +331,8 @@
modifier.close();
IndexReader reader1 = refreshReader(reader0, true).refreshedReader;
- assertTrue(reader1 instanceof MultiSegmentReader);
- IndexReader[] subReaders1 = ((MultiSegmentReader) reader1).getSequentialSubReaders();
+ IndexReader[] subReaders1 = reader1.getSequentialSubReaders();
+ assertNotNull(subReaders1);
assertEquals(subReaders0.length, subReaders1.length);
for (int i = 0; i < subReaders0.length; i++) {
@@ -350,8 +350,8 @@
modifier.close();
IndexReader reader2 = refreshReader(reader1, true).refreshedReader;
- assertTrue(reader2 instanceof MultiSegmentReader);
- IndexReader[] subReaders2 = ((MultiSegmentReader) reader2).getSequentialSubReaders();
+ IndexReader[] subReaders2 = reader2.getSequentialSubReaders();
+ assertNotNull(subReaders2);
assertEquals(subReaders1.length, subReaders2.length);
for (int i = 0; i < subReaders2.length; i++) {
@@ -374,8 +374,8 @@
}
IndexReader reader3 = refreshReader(reader0, true).refreshedReader;
- assertTrue(reader3 instanceof MultiSegmentReader);
- IndexReader[] subReaders3 = ((MultiSegmentReader) reader3).getSequentialSubReaders();
+ IndexReader[] subReaders3 = reader3.getSequentialSubReaders();
+ assertNotNull(subReaders3);
assertEquals(subReaders3.length, subReaders0.length);
// try some permutations
@@ -541,60 +541,62 @@
Directory dir1 = new RAMDirectory();
createIndex(dir1, false);
- SegmentReader reader1 = (SegmentReader) IndexReader.open(dir1);
+ IndexReader reader1 = IndexReader.open(dir1);
+ SegmentReader segmentReader1 = SegmentReader.getOnlySegmentReader(reader1);
IndexReader modifier = IndexReader.open(dir1);
modifier.deleteDocument(0);
modifier.close();
- SegmentReader reader2 = (SegmentReader) reader1.reopen();
+ IndexReader reader2 = reader1.reopen();
modifier = IndexReader.open(dir1);
modifier.setNorm(1, "field1", 50);
modifier.setNorm(1, "field2", 50);
modifier.close();
- SegmentReader reader3 = (SegmentReader) reader2.reopen();
+ IndexReader reader3 = reader2.reopen();
+ SegmentReader segmentReader3 = SegmentReader.getOnlySegmentReader(reader3);
modifier = IndexReader.open(dir1);
modifier.deleteDocument(2);
modifier.close();
- SegmentReader reader4 = (SegmentReader) reader3.reopen();
+ IndexReader reader4 = reader3.reopen();
modifier = IndexReader.open(dir1);
modifier.deleteDocument(3);
modifier.close();
- SegmentReader reader5 = (SegmentReader) reader3.reopen();
+ IndexReader reader5 = reader3.reopen();
// Now reader2-reader5 references reader1. reader1 and reader2
// share the same norms. reader3, reader4, reader5 also share norms.
assertRefCountEquals(1, reader1);
- assertFalse(reader1.normsClosed());
+ assertFalse(segmentReader1.normsClosed());
reader1.close();
assertRefCountEquals(0, reader1);
- assertFalse(reader1.normsClosed());
+ assertFalse(segmentReader1.normsClosed());
reader2.close();
assertRefCountEquals(0, reader1);
// now the norms for field1 and field2 should be closed
- assertTrue(reader1.normsClosed("field1"));
- assertTrue(reader1.normsClosed("field2"));
+ assertTrue(segmentReader1.normsClosed("field1"));
+ assertTrue(segmentReader1.normsClosed("field2"));
// but the norms for field3 and field4 should still be open
- assertFalse(reader1.normsClosed("field3"));
- assertFalse(reader1.normsClosed("field4"));
+ assertFalse(segmentReader1.normsClosed("field3"));
+ assertFalse(segmentReader1.normsClosed("field4"));
reader3.close();
assertRefCountEquals(0, reader1);
- assertFalse(reader3.normsClosed());
+ assertFalse(segmentReader3.normsClosed());
reader5.close();
assertRefCountEquals(0, reader1);
- assertFalse(reader3.normsClosed());
+ assertFalse(segmentReader3.normsClosed());
reader4.close();
assertRefCountEquals(0, reader1);
// and now all norms that reader1 used should be closed
- assertTrue(reader1.normsClosed());
+ assertTrue(segmentReader1.normsClosed());
// now that reader3, reader4 and reader5 are closed,
// the norms that those three readers shared should be
// closed as well
- assertTrue(reader3.normsClosed());
+ assertTrue(segmentReader3.normsClosed());
}
private void performTestsWithExceptionInReopen(TestReopen test) throws Exception {
@@ -871,14 +873,6 @@
}
w.close();
-
- IndexReader r = IndexReader.open(dir);
- if (multiSegment) {
- assertTrue(r instanceof MultiSegmentReader);
- } else {
- assertTrue(r instanceof SegmentReader);
- }
- r.close();
}
private static Document createDocument(int n, int numFields) {
@@ -946,38 +940,20 @@
}
if (checkSubReaders) {
- if (reader instanceof MultiSegmentReader) {
- IndexReader[] subReaders = ((MultiSegmentReader) reader).getSequentialSubReaders();
- for (int i = 0; i < subReaders.length; i++) {
- assertReaderClosed(subReaders[i], checkSubReaders, checkNormsClosed);
- }
- }
-
- if (reader instanceof MultiReader) {
- IndexReader[] subReaders = ((MultiReader) reader).getSequentialSubReaders();
- for (int i = 0; i < subReaders.length; i++) {
+ IndexReader[] subReaders = reader.getSequentialSubReaders();
+ if (subReaders != null)
+ for (int i = 0; i < subReaders.length; i++)
assertReaderClosed(subReaders[i], checkSubReaders, checkNormsClosed);
- }
- }
-
- if (reader instanceof ParallelReader) {
- IndexReader[] subReaders = ((ParallelReader) reader).getSubReaders();
- for (int i = 0; i < subReaders.length; i++) {
- assertReaderClosed(subReaders[i], checkSubReaders, checkNormsClosed);
- }
- }
}
}
private void assertReaderOpen(IndexReader reader) {
reader.ensureOpen();
- if (reader instanceof MultiSegmentReader) {
- IndexReader[] subReaders = ((MultiSegmentReader) reader).getSequentialSubReaders();
- for (int i = 0; i < subReaders.length; i++) {
+ IndexReader[] subReaders = reader.getSequentialSubReaders();
+ if (subReaders != null)
+ for (int i = 0; i < subReaders.length; i++)
assertReaderOpen(subReaders[i]);
- }
- }
}
private void assertRefCountEquals(int refCount, IndexReader reader) {
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Sun Jun 7 16:30:17 2009
@@ -72,8 +72,7 @@
writer.optimize();
writer.close();
- // the index is a single segment, thus IndexReader.open() returns an instance of SegmentReader
- SegmentReader reader = (SegmentReader) IndexReader.open(directory);
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(directory);
// we decorate the proxStream with a wrapper class that allows to count the number of calls of seek()
reader.proxStream = new SeeksCountingStream(reader.proxStream);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java Sun Jun 7 16:30:17 2009
@@ -56,7 +56,7 @@
writer.optimize();
writer.close();
- IndexReader reader = IndexReader.open(dir);
+ IndexReader reader = SegmentReader.getOnlySegmentReader(dir);
SegmentTermPositions tp = (SegmentTermPositions) reader.termPositions();
tp.freqStream = new CountingStream(tp.freqStream);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiSegmentReader.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiSegmentReader.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestMultiSegmentReader.java Sun Jun 7 16:30:17 2009
@@ -55,7 +55,7 @@
protected IndexReader openReader() throws IOException {
IndexReader reader;
reader = IndexReader.open(dir);
- assertTrue(reader instanceof MultiSegmentReader);
+ assertNotNull(reader.getSequentialSubReaders());
assertTrue(dir != null);
assertTrue(sis != null);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestOmitTf.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestOmitTf.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestOmitTf.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestOmitTf.java Sun Jun 7 16:30:17 2009
@@ -88,9 +88,8 @@
writer.close();
_TestUtil.checkIndex(ram);
- // only one segment in the index, so we can cast to SegmentReader
- SegmentReader reader = (SegmentReader) IndexReader.open(ram);
- FieldInfos fi = reader.fieldInfos();
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(ram);
+ FieldInfos fi = reader.fieldInfos();
assertTrue("OmitTf field bit should be set.", fi.fieldInfo("f1").omitTermFreqAndPositions);
assertTrue("OmitTf field bit should be set.", fi.fieldInfo("f2").omitTermFreqAndPositions);
@@ -141,8 +140,7 @@
_TestUtil.checkIndex(ram);
- // only one segment in the index, so we can cast to SegmentReader
- SegmentReader reader = (SegmentReader) IndexReader.open(ram);
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(ram);
FieldInfos fi = reader.fieldInfos();
assertTrue("OmitTf field bit should be set.", fi.fieldInfo("f1").omitTermFreqAndPositions);
assertTrue("OmitTf field bit should be set.", fi.fieldInfo("f2").omitTermFreqAndPositions);
@@ -186,8 +184,7 @@
_TestUtil.checkIndex(ram);
- // only one segment in the index, so we can cast to SegmentReader
- SegmentReader reader = (SegmentReader) IndexReader.open(ram);
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(ram);
FieldInfos fi = reader.fieldInfos();
assertTrue("OmitTf field bit should not be set.", !fi.fieldInfo("f1").omitTermFreqAndPositions);
assertTrue("OmitTf field bit should be set.", fi.fieldInfo("f2").omitTermFreqAndPositions);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestPayloads.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestPayloads.java Sun Jun 7 16:30:17 2009
@@ -115,9 +115,8 @@
// flush
writer.close();
- // only one segment in the index, so we can cast to SegmentReader
- SegmentReader reader = (SegmentReader) IndexReader.open(ram);
- FieldInfos fi = reader.fieldInfos();
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(ram);
+ FieldInfos fi = reader.fieldInfos();
assertFalse("Payload field bit should not be set.", fi.fieldInfo("f1").storePayloads);
assertTrue("Payload field bit should be set.", fi.fieldInfo("f2").storePayloads);
assertFalse("Payload field bit should not be set.", fi.fieldInfo("f3").storePayloads);
@@ -140,8 +139,7 @@
// flush
writer.close();
- // only one segment in the index, so we can cast to SegmentReader
- reader = (SegmentReader) IndexReader.open(ram);
+ reader = SegmentReader.getOnlySegmentReader(ram);
fi = reader.fieldInfos();
assertFalse("Payload field bit should not be set.", fi.fieldInfo("f1").storePayloads);
assertTrue("Payload field bit should be set.", fi.fieldInfo("f2").storePayloads);
Modified: lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestSegmentTermEnum.java?rev=782404&r1=782403&r2=782404&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestSegmentTermEnum.java (original)
+++ lucene/java/branches/lucene_2_4_back_compat_tests/src/test/org/apache/lucene/index/TestSegmentTermEnum.java Sun Jun 7 16:30:17 2009
@@ -71,7 +71,7 @@
IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
addDoc(writer, "aaa bbb");
writer.close();
- IndexReader reader = IndexReader.open(dir);
+ SegmentReader reader = SegmentReader.getOnlySegmentReader(dir);
SegmentTermEnum termEnum = (SegmentTermEnum) reader.terms();
assertTrue(termEnum.next());
assertEquals("aaa", termEnum.term().text());