You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/08/15 14:22:07 UTC
svn commit: r1373365 [2/3] - in /lucene/dev/branches/pforcodec_3892: ./
lucene/ lucene/analysis/ lucene/analysis/common/
lucene/analysis/common/src/java/org/apache/lucene/analysis/snowball/
lucene/analysis/common/src/test/org/apache/lucene/analysis/cor...
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java Wed Aug 15 12:22:02 2012
@@ -549,7 +549,7 @@ public void testFilesOpenClose() throws
assertEquals("IndexReaders have different values for numDocs.", index1.numDocs(), index2.numDocs());
assertEquals("IndexReaders have different values for maxDoc.", index1.maxDoc(), index2.maxDoc());
assertEquals("Only one IndexReader has deletions.", index1.hasDeletions(), index2.hasDeletions());
- assertEquals("Single segment test differs.", index1.getSequentialSubReaders().size() == 1, index2.getSequentialSubReaders().size() == 1);
+ assertEquals("Single segment test differs.", index1.leaves().size() == 1, index2.leaves().size() == 1);
// check field names
FieldInfos fieldInfos1 = MultiFields.getMergedFieldInfos(index1);
@@ -785,7 +785,7 @@ public void testFilesOpenClose() throws
DirectoryReader r2 = DirectoryReader.openIfChanged(r);
assertNotNull(r2);
r.close();
- AtomicReader sub0 = r2.getSequentialSubReaders().get(0);
+ AtomicReader sub0 = r2.leaves().get(0).reader();
final int[] ints2 = FieldCache.DEFAULT.getInts(sub0, "number", false);
r2.close();
assertTrue(ints == ints2);
@@ -814,9 +814,8 @@ public void testFilesOpenClose() throws
assertNotNull(r2);
r.close();
- List<? extends AtomicReader> subs = r2.getSequentialSubReaders();
- for(AtomicReader s : subs) {
- assertEquals(36, s.getUniqueTermCount());
+ for(AtomicReaderContext s : r2.leaves()) {
+ assertEquals(36, s.reader().getUniqueTermCount());
}
r2.close();
writer.close();
@@ -842,7 +841,7 @@ public void testFilesOpenClose() throws
// expected
}
- assertEquals(-1, ((SegmentReader) r.getSequentialSubReaders().get(0)).getTermInfosIndexDivisor());
+ assertEquals(-1, ((SegmentReader) r.leaves().get(0).reader()).getTermInfosIndexDivisor());
writer = new IndexWriter(
dir,
newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).
@@ -857,11 +856,11 @@ public void testFilesOpenClose() throws
assertNotNull(r2);
assertNull(DirectoryReader.openIfChanged(r2));
r.close();
- List<? extends AtomicReader> subReaders = r2.getSequentialSubReaders();
- assertEquals(2, subReaders.size());
- for(AtomicReader s : subReaders) {
+ List<AtomicReaderContext> leaves = r2.leaves();
+ assertEquals(2, leaves.size());
+ for(AtomicReaderContext ctx : leaves) {
try {
- s.docFreq(new Term("field", "f"));
+ ctx.reader().docFreq(new Term("field", "f"));
fail("did not hit expected exception");
} catch (IllegalStateException ise) {
// expected
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReaderReopen.java Wed Aug 15 12:22:02 2012
@@ -171,8 +171,8 @@ public class TestDirectoryReaderReopen e
TestDirectoryReader.assertIndexEquals(index1, index2_refreshed);
index2_refreshed.close();
- assertReaderClosed(index2, true, true);
- assertReaderClosed(index2_refreshed, true, true);
+ assertReaderClosed(index2, true);
+ assertReaderClosed(index2_refreshed, true);
index2 = test.openReader();
@@ -190,28 +190,8 @@ public class TestDirectoryReaderReopen e
index1.close();
index2.close();
- assertReaderClosed(index1, true, true);
- assertReaderClosed(index2, true, true);
- }
-
- private void performTestsWithExceptionInReopen(TestReopen test) throws Exception {
- DirectoryReader index1 = test.openReader();
- DirectoryReader index2 = test.openReader();
-
- TestDirectoryReader.assertIndexEquals(index1, index2);
-
- try {
- refreshReader(index1, test, 0, true);
- fail("Expected exception not thrown.");
- } catch (Exception e) {
- // expected exception
- }
-
- // index2 should still be usable and unaffected by the failed reopen() call
- TestDirectoryReader.assertIndexEquals(index1, index2);
-
- index1.close();
- index2.close();
+ assertReaderClosed(index1, true);
+ assertReaderClosed(index2, true);
}
public void testThreadSafety() throws Exception {
@@ -355,11 +335,11 @@ public class TestDirectoryReaderReopen e
reader.close();
for (final DirectoryReader readerToClose : readersToClose) {
- assertReaderClosed(readerToClose, true, true);
+ assertReaderClosed(readerToClose, true);
}
- assertReaderClosed(reader, true, true);
- assertReaderClosed(firstReader, true, true);
+ assertReaderClosed(reader, true);
+ assertReaderClosed(firstReader, true);
dir.close();
}
@@ -374,7 +354,7 @@ public class TestDirectoryReaderReopen e
DirectoryReader refreshedReader;
}
- private abstract static class ReaderThreadTask {
+ abstract static class ReaderThreadTask {
protected volatile boolean stopped;
public void stop() {
this.stopped = true;
@@ -384,8 +364,8 @@ public class TestDirectoryReaderReopen e
}
private static class ReaderThread extends Thread {
- private ReaderThreadTask task;
- private Throwable error;
+ ReaderThreadTask task;
+ Throwable error;
ReaderThread(ReaderThreadTask task) {
@@ -469,9 +449,9 @@ public class TestDirectoryReaderReopen e
DirectoryReader r = DirectoryReader.open(dir);
if (multiSegment) {
- assertTrue(r.getSequentialSubReaders().size() > 1);
+ assertTrue(r.leaves().size() > 1);
} else {
- assertTrue(r.getSequentialSubReaders().size() == 1);
+ assertTrue(r.leaves().size() == 1);
}
r.close();
}
@@ -533,46 +513,25 @@ public class TestDirectoryReaderReopen e
}
}
- static void assertReaderClosed(IndexReader reader, boolean checkSubReaders, boolean checkNormsClosed) {
+ static void assertReaderClosed(IndexReader reader, boolean checkSubReaders) {
assertEquals(0, reader.getRefCount());
- if (checkNormsClosed && reader instanceof AtomicReader) {
- // TODO: should we really assert something here? we check for open files and this is obselete...
- // assertTrue(((SegmentReader) reader).normsClosed());
- }
-
if (checkSubReaders && reader instanceof CompositeReader) {
+ // we cannot use reader context here, as reader is
+ // already closed and calling getTopReaderContext() throws AlreadyClosed!
List<? extends IndexReader> subReaders = ((CompositeReader) reader).getSequentialSubReaders();
- for (IndexReader r : subReaders) {
- assertReaderClosed(r, checkSubReaders, checkNormsClosed);
+ for (final IndexReader r : subReaders) {
+ assertReaderClosed(r, checkSubReaders);
}
}
}
- /*
- private void assertReaderOpen(DirectoryReader reader) {
- reader.ensureOpen();
-
- if (reader instanceof DirectoryReader) {
- DirectoryReader[] subReaders = reader.getSequentialSubReaders();
- for (int i = 0; i < subReaders.length; i++) {
- assertReaderOpen(subReaders[i]);
- }
- }
- }
- */
-
- private void assertRefCountEquals(int refCount, DirectoryReader reader) {
- assertEquals("Reader has wrong refCount value.", refCount, reader.getRefCount());
- }
-
-
- private abstract static class TestReopen {
+ abstract static class TestReopen {
protected abstract DirectoryReader openReader() throws IOException;
protected abstract void modifyIndex(int i) throws IOException;
}
- private static class KeepAllCommits implements IndexDeletionPolicy {
+ static class KeepAllCommits implements IndexDeletionPolicy {
public void onInit(List<? extends IndexCommit> commits) {
}
public void onCommit(List<? extends IndexCommit> commits) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDoc.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDoc.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDoc.java Wed Aug 15 12:22:02 2012
@@ -204,7 +204,7 @@ public class TestDoc extends LuceneTestC
final SegmentInfo si = new SegmentInfo(si1.info.dir, Constants.LUCENE_MAIN_VERSION, merged, -1, false, codec, null, null);
SegmentMerger merger = new SegmentMerger(si, InfoStream.getDefault(), trackingDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL,
- MergeState.CheckAbort.NONE, null, new FieldInfos.FieldNumbers(), context);
+ MergeState.CheckAbort.NONE, new FieldInfos.FieldNumbers(), context);
merger.add(r1);
merger.add(r2);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocTermOrds.java Wed Aug 15 12:22:02 2012
@@ -154,11 +154,11 @@ public class TestDocTermOrds extends Luc
System.out.println("TEST: reader=" + r);
}
- for(IndexReader subR : r.getSequentialSubReaders()) {
+ for(AtomicReaderContext ctx : r.leaves()) {
if (VERBOSE) {
- System.out.println("\nTEST: sub=" + subR);
+ System.out.println("\nTEST: sub=" + ctx.reader());
}
- verify((AtomicReader) subR, idToOrds, termsArray, null);
+ verify(ctx.reader(), idToOrds, termsArray, null);
}
// Also test top-level reader: its enum does not support
@@ -273,11 +273,11 @@ public class TestDocTermOrds extends Luc
idToOrdsPrefix[id] = newOrdsArray;
}
- for(IndexReader subR : r.getSequentialSubReaders()) {
+ for(AtomicReaderContext ctx : r.leaves()) {
if (VERBOSE) {
- System.out.println("\nTEST: sub=" + subR);
+ System.out.println("\nTEST: sub=" + ctx.reader());
}
- verify((AtomicReader) subR, idToOrdsPrefix, termsArray, prefixRef);
+ verify(ctx.reader(), idToOrdsPrefix, termsArray, prefixRef);
}
// Also test top-level reader: its enum does not support
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocValuesIndexing.java Wed Aug 15 12:22:02 2012
@@ -91,7 +91,7 @@ public class TestDocValuesIndexing exten
writer.close(true);
DirectoryReader reader = DirectoryReader.open(dir, 1);
- assertEquals(1, reader.getSequentialSubReaders().size());
+ assertEquals(1, reader.leaves().size());
IndexSearcher searcher = new IndexSearcher(reader);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestDocsAndPositions.java Wed Aug 15 12:22:02 2012
@@ -63,7 +63,7 @@ public class TestDocsAndPositions extend
int num = atLeast(13);
for (int i = 0; i < num; i++) {
BytesRef bytes = new BytesRef("1");
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
for (AtomicReaderContext atomicReaderContext : topReaderContext.leaves()) {
DocsAndPositionsEnum docsAndPosEnum = getDocsAndPositions(
atomicReaderContext.reader(), bytes, null);
@@ -138,7 +138,7 @@ public class TestDocsAndPositions extend
int num = atLeast(13);
for (int i = 0; i < num; i++) {
BytesRef bytes = new BytesRef("" + term);
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
for (AtomicReaderContext atomicReaderContext : topReaderContext.leaves()) {
DocsAndPositionsEnum docsAndPosEnum = getDocsAndPositions(
atomicReaderContext.reader(), bytes, null);
@@ -214,7 +214,7 @@ public class TestDocsAndPositions extend
int num = atLeast(13);
for (int i = 0; i < num; i++) {
BytesRef bytes = new BytesRef("" + term);
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
for (AtomicReaderContext context : topReaderContext.leaves()) {
int maxDoc = context.reader().maxDoc();
DocsEnum docsEnum = _TestUtil.docs(random(), context.reader(), fieldName, bytes, null, null, DocsEnum.FLAG_FREQS);
@@ -292,7 +292,7 @@ public class TestDocsAndPositions extend
for (int i = 0; i < num; i++) {
BytesRef bytes = new BytesRef("even");
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ IndexReaderContext topReaderContext = reader.getContext();
for (AtomicReaderContext atomicReaderContext : topReaderContext.leaves()) {
DocsAndPositionsEnum docsAndPosEnum = getDocsAndPositions(
atomicReaderContext.reader(), bytes, null);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java Wed Aug 15 12:22:02 2012
@@ -289,8 +289,9 @@ public class TestFieldsReader extends Lu
assertEquals(numDocs, r.numDocs());
- for(IndexReader sub : r.getSequentialSubReaders()) {
- final int[] ids = FieldCache.DEFAULT.getInts((AtomicReader) sub, "id", false);
+ for(AtomicReaderContext ctx : r.leaves()) {
+ final AtomicReader sub = ctx.reader();
+ final int[] ids = FieldCache.DEFAULT.getInts(sub, "id", false);
for(int docID=0;docID<sub.numDocs();docID++) {
final Document doc = sub.document(docID);
final Field f = (Field) doc.getField("nf");
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Wed Aug 15 12:22:02 2012
@@ -1498,9 +1498,9 @@ public class TestIndexWriter extends Luc
assertNoUnreferencedFiles(dir, "no tv files");
DirectoryReader r0 = DirectoryReader.open(dir);
- for (IndexReader r : r0.getSequentialSubReaders()) {
- SegmentInfoPerCommit s = ((SegmentReader) r).getSegmentInfo();
- assertFalse(((SegmentReader) r).getFieldInfos().hasVectors());
+ for (AtomicReaderContext ctx : r0.leaves()) {
+ SegmentReader sr = (SegmentReader) ctx.reader();
+ assertFalse(sr.getFieldInfos().hasVectors());
}
r0.close();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterCommit.java Wed Aug 15 12:22:02 2012
@@ -286,7 +286,7 @@ public class TestIndexWriterCommit exten
// Reader should see index as multi-seg at this
// point:
- assertTrue("Reader incorrectly sees one segment", reader.getSequentialSubReaders().size() > 1);
+ assertTrue("Reader incorrectly sees one segment", reader.leaves().size() > 1);
reader.close();
// Abort the writer:
@@ -297,7 +297,7 @@ public class TestIndexWriterCommit exten
reader = DirectoryReader.open(dir);
// Reader should still see index as multi-segment
- assertTrue("Reader incorrectly sees one segment", reader.getSequentialSubReaders().size() > 1);
+ assertTrue("Reader incorrectly sees one segment", reader.leaves().size() > 1);
reader.close();
if (VERBOSE) {
@@ -316,7 +316,7 @@ public class TestIndexWriterCommit exten
reader = DirectoryReader.open(dir);
// Reader should see index as one segment
- assertEquals("Reader incorrectly sees more than one segment", 1, reader.getSequentialSubReaders().size());
+ assertEquals("Reader incorrectly sees more than one segment", 1, reader.leaves().size());
reader.close();
dir.close();
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Wed Aug 15 12:22:02 2012
@@ -1293,7 +1293,7 @@ public class TestIndexWriterExceptions e
assertTrue(reader.numDocs() > 0);
SegmentInfos sis = new SegmentInfos();
sis.read(dir);
- for(AtomicReaderContext context : reader.getTopReaderContext().leaves()) {
+ for(AtomicReaderContext context : reader.leaves()) {
assertFalse(context.reader().getFieldInfos().hasVectors());
}
reader.close();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java Wed Aug 15 12:22:02 2012
@@ -187,7 +187,7 @@ public class TestIndexWriterForceMerge e
if (0 == pass) {
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- assertEquals(1, reader.getSequentialSubReaders().size());
+ assertEquals(1, reader.leaves().size());
reader.close();
} else {
// Get another segment to flush so we can verify it is
@@ -197,7 +197,7 @@ public class TestIndexWriterForceMerge e
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- assertTrue(reader.getSequentialSubReaders().size() > 1);
+ assertTrue(reader.leaves().size() > 1);
reader.close();
SegmentInfos infos = new SegmentInfos();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java Wed Aug 15 12:22:02 2012
@@ -315,7 +315,7 @@ public class TestIndexWriterUnicode exte
IndexReader r = writer.getReader();
// Test each sub-segment
- for (AtomicReaderContext ctx : r.getTopReaderContext().leaves()) {
+ for (AtomicReaderContext ctx : r.leaves()) {
checkTermsOrder(ctx.reader(), allTerms, false);
}
checkTermsOrder(r, allTerms, true);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestParallelCompositeReader.java Wed Aug 15 12:22:02 2012
@@ -339,13 +339,13 @@ public class TestParallelCompositeReader
if (compositeComposite) {
rd1 = new MultiReader(DirectoryReader.open(dir1), DirectoryReader.open(dir1));
rd2 = new MultiReader(DirectoryReader.open(dir2), DirectoryReader.open(dir2));
- assertEquals(2, rd1.getSequentialSubReaders().size());
- assertEquals(2, rd2.getSequentialSubReaders().size());
+ assertEquals(2, rd1.getContext().children().size());
+ assertEquals(2, rd2.getContext().children().size());
} else {
rd1 = DirectoryReader.open(dir1);
rd2 = DirectoryReader.open(dir2);
- assertEquals(3, rd1.getSequentialSubReaders().size());
- assertEquals(3, rd2.getSequentialSubReaders().size());
+ assertEquals(3, rd1.getContext().children().size());
+ assertEquals(3, rd2.getContext().children().size());
}
ParallelCompositeReader pr = new ParallelCompositeReader(rd1, rd2);
return newSearcher(pr);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java Wed Aug 15 12:22:02 2012
@@ -604,7 +604,7 @@ public class TestPayloads extends Lucene
field.setTokenStream(ts);
writer.addDocument(doc);
DirectoryReader reader = writer.getReader();
- AtomicReader sr = reader.getSequentialSubReaders().get(0);
+ AtomicReader sr = SlowCompositeReaderWrapper.wrap(reader);
DocsAndPositionsEnum de = sr.termPositionsEnum(null, "field", new BytesRef("withPayload"));
de.nextDoc();
de.nextPosition();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java Wed Aug 15 12:22:02 2012
@@ -289,9 +289,9 @@ public class TestPostingsOffsets extends
w.close();
final String[] terms = new String[] {"a", "b", "c", "d"};
- for(IndexReader reader : r.getSequentialSubReaders()) {
+ for(AtomicReaderContext ctx : r.leaves()) {
// TODO: improve this
- AtomicReader sub = (AtomicReader) reader;
+ AtomicReader sub = ctx.reader();
//System.out.println("\nsub=" + sub);
final TermsEnum termsEnum = sub.fields().terms("content").iterator(null);
DocsEnum docs = null;
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java Wed Aug 15 12:22:02 2012
@@ -25,7 +25,6 @@ import java.util.Set;
import java.util.TreeSet;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.MergedIterator;
import org.apache.lucene.util._TestUtil;
public class TestPrefixCodedTerms extends LuceneTestCase {
@@ -70,14 +69,10 @@ public class TestPrefixCodedTerms extend
@SuppressWarnings("unchecked")
public void testMergeEmpty() {
- List<Iterator<Term>> subs = Collections.emptyList();
- Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ Iterator<Term> merged = new MergedIterator<Term>();
assertFalse(merged.hasNext());
- subs = new ArrayList<Iterator<Term>>();
- subs.add(new PrefixCodedTerms.Builder().finish().iterator());
- subs.add(new PrefixCodedTerms.Builder().finish().iterator());
- merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ merged = new MergedIterator<Term>(new PrefixCodedTerms.Builder().finish().iterator(), new PrefixCodedTerms.Builder().finish().iterator());
assertFalse(merged.hasNext());
}
@@ -93,18 +88,14 @@ public class TestPrefixCodedTerms extend
b2.add(t2);
PrefixCodedTerms pb2 = b2.finish();
- List<Iterator<Term>> subs = new ArrayList<Iterator<Term>>();
- subs.add(pb1.iterator());
- subs.add(pb2.iterator());
-
- Iterator<Term> merged = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
+ Iterator<Term> merged = new MergedIterator<Term>(pb1.iterator(), pb2.iterator());
assertTrue(merged.hasNext());
assertEquals(t1, merged.next());
assertTrue(merged.hasNext());
assertEquals(t2, merged.next());
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked","rawtypes"})
public void testMergeRandom() {
PrefixCodedTerms pb[] = new PrefixCodedTerms[_TestUtil.nextInt(random(), 2, 10)];
Set<Term> superSet = new TreeSet<Term>();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestSegmentMerger.java Wed Aug 15 12:22:02 2012
@@ -82,7 +82,7 @@ public class TestSegmentMerger extends L
final SegmentInfo si = new SegmentInfo(mergedDir, Constants.LUCENE_MAIN_VERSION, mergedSegment, -1, false, codec, null, null);
SegmentMerger merger = new SegmentMerger(si, InfoStream.getDefault(), mergedDir, IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL,
- MergeState.CheckAbort.NONE, null, new FieldInfos.FieldNumbers(), newIOContext(random()));
+ MergeState.CheckAbort.NONE, new FieldInfos.FieldNumbers(), newIOContext(random()));
merger.add(reader1);
merger.add(reader2);
MergeState mergeState = merger.merge();
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Wed Aug 15 12:22:02 2012
@@ -281,10 +281,10 @@ public class TestStressIndexing2 extends
}
private static void printDocs(DirectoryReader r) throws Throwable {
- List<? extends AtomicReader> subs = r.getSequentialSubReaders();
- for(IndexReader sub : subs) {
+ for(AtomicReaderContext ctx : r.leaves()) {
// TODO: improve this
- Bits liveDocs = ((AtomicReader)sub).getLiveDocs();
+ AtomicReader sub = ctx.reader();
+ Bits liveDocs = sub.getLiveDocs();
System.out.println(" " + ((SegmentReader) sub).getSegmentInfo());
for(int docID=0;docID<sub.maxDoc();docID++) {
Document doc = sub.document(docID);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsReader.java Wed Aug 15 12:22:02 2012
@@ -184,9 +184,9 @@ public class TestTermVectorsReader exten
public void test() throws IOException {
//Check to see the files were created properly in setup
DirectoryReader reader = DirectoryReader.open(dir);
- for (IndexReader r : reader.getSequentialSubReaders()) {
- SegmentInfoPerCommit s = ((SegmentReader) r).getSegmentInfo();
- assertTrue(((SegmentReader) r).getFieldInfos().hasVectors());
+ for (AtomicReaderContext ctx : reader.leaves()) {
+ SegmentReader sr = (SegmentReader) ctx.reader();
+ assertTrue(sr.getFieldInfos().hasVectors());
}
reader.close();
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestThreadedForceMerge.java Wed Aug 15 12:22:02 2012
@@ -130,7 +130,7 @@ public class TestThreadedForceMerge exte
OpenMode.APPEND).setMaxBufferedDocs(2));
DirectoryReader reader = DirectoryReader.open(directory);
- assertEquals("reader=" + reader, 1, reader.getSequentialSubReaders().size());
+ assertEquals("reader=" + reader, 1, reader.leaves().size());
assertEquals(expectedDocCount, reader.numDocs());
reader.close();
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/index/TestTypePromotion.java Wed Aug 15 12:22:02 2012
@@ -120,8 +120,8 @@ public class TestTypePromotion extends L
private void assertValues(TestType type, Directory dir, long[] values, Type[] sourceType)
throws IOException {
DirectoryReader reader = DirectoryReader.open(dir);
- assertEquals(1, reader.getSequentialSubReaders().size());
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ assertEquals(1, reader.leaves().size());
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
assertEquals(1, leaves.size());
DocValues docValues = leaves.get(0).reader().docValues("promote");
@@ -371,8 +371,8 @@ public class TestTypePromotion extends L
writer.forceMerge(1);
writer.close();
DirectoryReader reader = DirectoryReader.open(dir);
- assertEquals(1, reader.getSequentialSubReaders().size());
- IndexReaderContext topReaderContext = reader.getTopReaderContext();
+ assertEquals(1, reader.leaves().size());
+ IndexReaderContext topReaderContext = reader.getContext();
List<AtomicReaderContext> leaves = topReaderContext.leaves();
DocValues docValues = leaves.get(0).reader().docValues("promote");
assertNotNull(docValues);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Wed Aug 15 12:22:02 2012
@@ -43,7 +43,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
MockFilter filter = new MockFilter();
CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
@@ -69,7 +69,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final Filter filter = new Filter() {
@Override
@@ -92,7 +92,7 @@ public class TestCachingWrapperFilter ex
writer.close();
IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final Filter filter = new Filter() {
@Override
@@ -115,8 +115,8 @@ public class TestCachingWrapperFilter ex
}
private static void assertDocIdSetCacheable(IndexReader reader, Filter filter, boolean shouldCacheable) throws IOException {
- assertTrue(reader.getTopReaderContext() instanceof AtomicReaderContext);
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ assertTrue(reader.getContext() instanceof AtomicReaderContext);
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
final CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
final DocIdSet originalSet = filter.getDocIdSet(context, context.reader().getLiveDocs());
final DocIdSet cachedSet = cacher.getDocIdSet(context, context.reader().getLiveDocs());
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java Wed Aug 15 12:22:02 2012
@@ -197,7 +197,7 @@ public class TestNumericRangeQuery32 ext
@Test
public void testInverseRange() throws Exception {
- AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(reader).getTopReaderContext();
+ AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(reader).getContext();
NumericRangeFilter<Integer> f = NumericRangeFilter.newIntRange("field8", 8, 1000, -1000, true, true);
assertSame("A inverse range should return the EMPTY_DOCIDSET instance", DocIdSet.EMPTY_DOCIDSET, f.getDocIdSet(context, context.reader().getLiveDocs()));
f = NumericRangeFilter.newIntRange("field8", 8, Integer.MAX_VALUE, null, false, false);
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java Wed Aug 15 12:22:02 2012
@@ -211,7 +211,7 @@ public class TestNumericRangeQuery64 ext
@Test
public void testInverseRange() throws Exception {
- AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(searcher.getIndexReader()).getTopReaderContext();
+ AtomicReaderContext context = SlowCompositeReaderWrapper.wrap(searcher.getIndexReader()).getContext();
NumericRangeFilter<Long> f = NumericRangeFilter.newLongRange("field8", 8, 1000L, -1000L, true, true);
assertSame("A inverse range should return the EMPTY_DOCIDSET instance", DocIdSet.EMPTY_DOCIDSET,
f.getDocIdSet(context, context.reader().getLiveDocs()));
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java Wed Aug 15 12:22:02 2012
@@ -22,8 +22,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.index.MultiFields;
import org.apache.lucene.index.MultiReader;
import org.apache.lucene.index.Term;
@@ -310,13 +310,11 @@ public class TestShardSearching extends
final int numNodes = shardSearcher.nodeVersions.length;
int[] base = new int[numNodes];
- final List<? extends IndexReader> subs = ((CompositeReader) mockSearcher.getIndexReader()).getSequentialSubReaders();
+ final List<IndexReaderContext> subs = mockSearcher.getTopReaderContext().children();
assertEquals(numNodes, subs.size());
- int docCount = 0;
for(int nodeID=0;nodeID<numNodes;nodeID++) {
- base[nodeID] = docCount;
- docCount += subs.get(nodeID).maxDoc();
+ base[nodeID] = subs.get(nodeID).docBaseInParent;
}
if (VERBOSE) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java Wed Aug 15 12:22:02 2012
@@ -67,12 +67,12 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq;
Spans spans;
stq = new SpanTermQuery(new Term(PayloadHelper.FIELD, "seventy"));
- spans = MultiSpansWrapper.wrap(indexReader.getTopReaderContext(), stq);
+ spans = MultiSpansWrapper.wrap(indexReader.getContext(), stq);
assertTrue("spans is null and it shouldn't be", spans != null);
checkSpans(spans, 100, 1, 1, 1);
stq = new SpanTermQuery(new Term(PayloadHelper.NO_PAYLOAD_FIELD, "seventy"));
- spans = MultiSpansWrapper.wrap(indexReader.getTopReaderContext(), stq);
+ spans = MultiSpansWrapper.wrap(indexReader.getContext(), stq);
assertTrue("spans is null and it shouldn't be", spans != null);
checkSpans(spans, 100, 0, 0, 0);
}
@@ -83,7 +83,7 @@ public class TestPayloadSpans extends Lu
SpanFirstQuery sfq;
match = new SpanTermQuery(new Term(PayloadHelper.FIELD, "one"));
sfq = new SpanFirstQuery(match, 2);
- Spans spans = MultiSpansWrapper.wrap(indexReader.getTopReaderContext(), sfq);
+ Spans spans = MultiSpansWrapper.wrap(indexReader.getContext(), sfq);
checkSpans(spans, 109, 1, 1, 1);
//Test more complicated subclause
SpanQuery[] clauses = new SpanQuery[2];
@@ -91,11 +91,11 @@ public class TestPayloadSpans extends Lu
clauses[1] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "hundred"));
match = new SpanNearQuery(clauses, 0, true);
sfq = new SpanFirstQuery(match, 2);
- checkSpans(MultiSpansWrapper.wrap(indexReader.getTopReaderContext(), sfq), 100, 2, 1, 1);
+ checkSpans(MultiSpansWrapper.wrap(indexReader.getContext(), sfq), 100, 2, 1, 1);
match = new SpanNearQuery(clauses, 0, false);
sfq = new SpanFirstQuery(match, 2);
- checkSpans(MultiSpansWrapper.wrap(indexReader.getTopReaderContext(), sfq), 100, 2, 1, 1);
+ checkSpans(MultiSpansWrapper.wrap(indexReader.getContext(), sfq), 100, 2, 1, 1);
}
@@ -119,7 +119,7 @@ public class TestPayloadSpans extends Lu
writer.close();
- checkSpans(MultiSpansWrapper.wrap(reader.getTopReaderContext(), snq), 1,new int[]{2});
+ checkSpans(MultiSpansWrapper.wrap(reader.getContext(), snq), 1,new int[]{2});
reader.close();
directory.close();
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java Wed Aug 15 12:22:02 2012
@@ -77,9 +77,9 @@ public class TestLockFactory extends Luc
// exceptions raised:
// Verify: NoLockFactory allows two IndexWriters
public void testRAMDirectoryNoLocking() throws IOException {
- Directory dir = new MockDirectoryWrapper(random(), new RAMDirectory());
+ MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new RAMDirectory());
dir.setLockFactory(NoLockFactory.getNoLockFactory());
-
+ dir.setWrapLockFactory(false); // we are gonna explicitly test we get this back
assertTrue("RAMDirectory.setLockFactory did not take",
NoLockFactory.class.isInstance(dir.getLockFactory()));
Modified: lucene/dev/branches/pforcodec_3892/lucene/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java Wed Aug 15 12:22:02 2012
@@ -1,17 +1,20 @@
package org.apache.lucene.facet.example.merge;
import java.io.IOException;
+import java.util.List;
+import org.apache.lucene.index.AtomicReader;
+import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.PayloadProcessorProvider;
+import org.apache.lucene.index.MultiReader;
import org.apache.lucene.store.Directory;
import org.apache.lucene.facet.example.ExampleUtils;
-import org.apache.lucene.facet.index.FacetsPayloadProcessorProvider;
+import org.apache.lucene.facet.index.OrdinalMappingAtomicReader;
import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter.DiskOrdinalMap;
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter.MemoryOrdinalMap;
@@ -84,13 +87,17 @@ public class TaxonomyMergeUtils {
// merge the taxonomies
destTaxWriter.addTaxonomy(srcTaxDir, map);
- PayloadProcessorProvider payloadProcessor = new FacetsPayloadProcessorProvider(
- srcIndexDir, map.getMap(), new DefaultFacetIndexingParams());
- destIndexWriter.setPayloadProcessorProvider(payloadProcessor);
+ int ordinalMap[] = map.getMap();
+ FacetIndexingParams params = new DefaultFacetIndexingParams();
- IndexReader reader = DirectoryReader.open(srcIndexDir);
+ DirectoryReader reader = DirectoryReader.open(srcIndexDir, -1);
+ List<AtomicReaderContext> leaves = reader.leaves();
+ AtomicReader wrappedLeaves[] = new AtomicReader[leaves.size()];
+ for (int i = 0; i < leaves.size(); i++) {
+ wrappedLeaves[i] = new OrdinalMappingAtomicReader(leaves.get(i).reader(), ordinalMap, params);
+ }
try {
- destIndexWriter.addIndexes(reader);
+ destIndexWriter.addIndexes(new MultiReader(wrappedLeaves));
// commit changes to taxonomy and index respectively.
destTaxWriter.commit();
Modified: lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/doc-files/userguide.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/doc-files/userguide.html?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/doc-files/userguide.html (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/doc-files/userguide.html Wed Aug 15 12:22:02 2012
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
Modified: lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java Wed Aug 15 12:22:02 2012
@@ -29,6 +29,7 @@ import org.apache.lucene.facet.taxonomy.
import org.apache.lucene.facet.taxonomy.writercache.cl2o.Cl2oTaxonomyWriterCache;
import org.apache.lucene.facet.taxonomy.writercache.lru.LruTaxonomyWriterCache;
import org.apache.lucene.index.AtomicReader;
+import org.apache.lucene.index.AtomicReaderContext;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.DocsEnum;
@@ -409,14 +410,12 @@ public class DirectoryTaxonomyWriter imp
DirectoryReader reader = readerManager.acquire();
try {
final BytesRef catTerm = new BytesRef(categoryPath.toString(delimiter));
- int base = 0;
- for (AtomicReader r : reader.getSequentialSubReaders()) {
- DocsEnum docs = r.termDocsEnum(null, Consts.FULL, catTerm, 0);
+ for (AtomicReaderContext ctx : reader.leaves()) {
+ DocsEnum docs = ctx.reader().termDocsEnum(null, Consts.FULL, catTerm, 0);
if (docs != null) {
- doc = docs.nextDoc() + base;
+ doc = docs.nextDoc() + ctx.docBase;
break;
}
- base += r.maxDoc(); // we don't have deletions, so it's ok to call maxDoc
}
} finally {
readerManager.release(reader);
@@ -452,14 +451,12 @@ public class DirectoryTaxonomyWriter imp
DirectoryReader reader = readerManager.acquire();
try {
final BytesRef catTerm = new BytesRef(categoryPath.toString(delimiter, prefixLen));
- int base = 0;
- for (AtomicReader r : reader.getSequentialSubReaders()) {
- DocsEnum docs = r.termDocsEnum(null, Consts.FULL, catTerm, 0);
+ for (AtomicReaderContext ctx : reader.leaves()) {
+ DocsEnum docs = ctx.reader().termDocsEnum(null, Consts.FULL, catTerm, 0);
if (docs != null) {
- doc = docs.nextDoc() + base;
+ doc = docs.nextDoc() + ctx.docBase;
break;
}
- base += r.maxDoc(); // we don't have deletions, so it's ok to call maxDoc
}
} finally {
readerManager.release(reader);
@@ -752,9 +749,8 @@ public class DirectoryTaxonomyWriter imp
CategoryPath cp = new CategoryPath();
TermsEnum termsEnum = null;
DocsEnum docsEnum = null;
- int base = 0;
- for (AtomicReader r : reader.getSequentialSubReaders()) {
- Terms terms = r.terms(Consts.FULL);
+ for (AtomicReaderContext ctx : reader.leaves()) {
+ Terms terms = ctx.reader().terms(Consts.FULL);
if (terms != null) { // cannot really happen, but be on the safe side
termsEnum = terms.iterator(termsEnum);
while (termsEnum.next() != null) {
@@ -768,7 +764,7 @@ public class DirectoryTaxonomyWriter imp
cp.clear();
cp.add(t.utf8ToString(), delimiter);
docsEnum = termsEnum.docs(null, docsEnum, 0);
- boolean res = cache.put(cp, docsEnum.nextDoc() + base);
+ boolean res = cache.put(cp, docsEnum.nextDoc() + ctx.docBase);
assert !res : "entries should not have been evicted from the cache";
} else {
// the cache is full and the next put() will evict entries from it, therefore abort the iteration.
@@ -780,7 +776,6 @@ public class DirectoryTaxonomyWriter imp
if (aborted) {
break;
}
- base += r.maxDoc(); // we don't have any deletions, so we're ok
}
} finally {
readerManager.release(reader);
@@ -845,8 +840,9 @@ public class DirectoryTaxonomyWriter imp
int base = 0;
TermsEnum te = null;
DocsEnum docs = null;
- for (AtomicReader ar : r.getSequentialSubReaders()) {
- Terms terms = ar.terms(Consts.FULL);
+ for (final AtomicReaderContext ctx : r.leaves()) {
+ final AtomicReader ar = ctx.reader();
+ final Terms terms = ar.terms(Consts.FULL);
te = terms.iterator(te);
while (te.next() != null) {
String value = te.term().utf8ToString();
Modified: lucene/dev/branches/pforcodec_3892/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/join/src/test/org/apache/lucene/search/join/TestBlockJoin.java Wed Aug 15 12:22:02 2012
@@ -248,7 +248,7 @@ public class TestBlockJoin extends Lucen
}
private Document getParentDoc(IndexReader reader, Filter parents, int childDocID) throws IOException {
- final List<AtomicReaderContext> leaves = reader.getTopReaderContext().leaves();
+ final List<AtomicReaderContext> leaves = reader.leaves();
final int subIndex = ReaderUtil.subIndex(childDocID, leaves);
final AtomicReaderContext leaf = leaves.get(subIndex);
final FixedBitSet bits = (FixedBitSet) parents.getDocIdSet(leaf, null);
@@ -962,7 +962,7 @@ public class TestBlockJoin extends Lucen
ToParentBlockJoinQuery q = new ToParentBlockJoinQuery(tq, parentFilter, ScoreMode.Avg);
Weight weight = s.createNormalizedWeight(q);
- DocIdSetIterator disi = weight.scorer(s.getIndexReader().getTopReaderContext().leaves().get(0), true, true, null);
+ DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), true, true, null);
assertEquals(1, disi.advance(1));
r.close();
dir.close();
@@ -996,7 +996,7 @@ public class TestBlockJoin extends Lucen
ToParentBlockJoinQuery q = new ToParentBlockJoinQuery(tq, parentFilter, ScoreMode.Avg);
Weight weight = s.createNormalizedWeight(q);
- DocIdSetIterator disi = weight.scorer(s.getIndexReader().getTopReaderContext().leaves().get(0), true, true, null);
+ DocIdSetIterator disi = weight.scorer(s.getIndexReader().leaves().get(0), true, true, null);
assertEquals(2, disi.advance(0));
r.close();
dir.close();
Modified: lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java Wed Aug 15 12:22:02 2012
@@ -185,7 +185,7 @@ public class MultiPassIndexSplitter {
}
private static FakeDeleteAtomicIndexReader[] initSubReaders(IndexReader reader) {
- final List<AtomicReaderContext> leaves = reader.getTopReaderContext().leaves();
+ final List<AtomicReaderContext> leaves = reader.leaves();
final FakeDeleteAtomicIndexReader[] subs = new FakeDeleteAtomicIndexReader[leaves.size()];
int i = 0;
for (final AtomicReaderContext ctx : leaves) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java Wed Aug 15 12:22:02 2012
@@ -102,7 +102,7 @@ public class PKIndexSplitter {
boolean success = false;
final IndexWriter w = new IndexWriter(target, config);
try {
- final List<AtomicReaderContext> leaves = reader.getTopReaderContext().leaves();
+ final List<AtomicReaderContext> leaves = reader.leaves();
final IndexReader[] subReaders = new IndexReader[leaves.size()];
int i = 0;
for (final AtomicReaderContext ctx : leaves) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java Wed Aug 15 12:22:02 2012
@@ -179,7 +179,7 @@ public class HighFreqTerms {
public static long getTotalTermFreq(IndexReader reader, final String field, final BytesRef termText) throws Exception {
long totalTF = 0L;
- for (final AtomicReaderContext ctx : reader.getTopReaderContext().leaves()) {
+ for (final AtomicReaderContext ctx : reader.leaves()) {
AtomicReader r = ctx.reader();
Bits liveDocs = r.getLiveDocs();
if (liveDocs == null) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java Wed Aug 15 12:22:02 2012
@@ -59,7 +59,7 @@ public class TestIndexSplitter extends L
}
iw.commit();
DirectoryReader iwReader = iw.getReader();
- assertEquals(3, iwReader.getSequentialSubReaders().size());
+ assertEquals(3, iwReader.leaves().size());
iwReader.close();
iw.close();
// we should have 2 segments now
@@ -87,7 +87,7 @@ public class TestIndexSplitter extends L
// now remove the copied segment from src
IndexSplitter.main(new String[] {dir.getAbsolutePath(), "-d", splitSegName});
r = DirectoryReader.open(fsDir);
- assertEquals(2, r.getSequentialSubReaders().size());
+ assertEquals(2, r.leaves().size());
r.close();
fsDir.close();
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java Wed Aug 15 12:22:02 2012
@@ -132,7 +132,7 @@ public class BooleanFilterTest extends L
private void tstFilterCard(String mes, int expected, Filter filt)
throws Exception {
// BooleanFilter never returns null DIS or null DISI!
- DocIdSetIterator disi = filt.getDocIdSet(reader.getTopReaderContext(), reader.getLiveDocs()).iterator();
+ DocIdSetIterator disi = filt.getDocIdSet(reader.getContext(), reader.getLiveDocs()).iterator();
int actual = 0;
while (disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
actual++;
Modified: lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/queries/src/test/org/apache/lucene/queries/TermsFilterTest.java Wed Aug 15 12:22:02 2012
@@ -62,8 +62,8 @@ public class TermsFilterTest extends Luc
w.addDocument(doc);
}
IndexReader reader = new SlowCompositeReaderWrapper(w.getReader());
- assertTrue(reader.getTopReaderContext() instanceof AtomicReaderContext);
- AtomicReaderContext context = (AtomicReaderContext) reader.getTopReaderContext();
+ assertTrue(reader.getContext() instanceof AtomicReaderContext);
+ AtomicReaderContext context = (AtomicReaderContext) reader.getContext();
w.close();
TermsFilter tf = new TermsFilter();
@@ -110,7 +110,7 @@ public class TermsFilterTest extends Luc
tf.addTerm(new Term(fieldName, "content1"));
MultiReader multi = new MultiReader(reader1, reader2);
- for (AtomicReaderContext context : multi.getTopReaderContext().leaves()) {
+ for (AtomicReaderContext context : multi.leaves()) {
FixedBitSet bits = (FixedBitSet) tf.getDocIdSet(context, context.reader().getLiveDocs());
assertTrue("Must be >= 0", bits.cardinality() >= 0);
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java Wed Aug 15 12:22:02 2012
@@ -66,7 +66,7 @@ public class TestNumericRangeFilterBuild
try {
AtomicReader reader = new SlowCompositeReaderWrapper(DirectoryReader.open(ramDir));
try {
- assertNull(filter.getDocIdSet(reader.getTopReaderContext(), reader.getLiveDocs()));
+ assertNull(filter.getDocIdSet(reader.getContext(), reader.getLiveDocs()));
}
finally {
reader.close();
Modified: lucene/dev/branches/pforcodec_3892/lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/suggest/src/java/org/apache/lucene/search/spell/SpellChecker.java Wed Aug 15 12:22:02 2012
@@ -498,7 +498,7 @@ public class SpellChecker implements jav
final IndexReader reader = searcher.getIndexReader();
if (reader.maxDoc() > 0) {
- for (final AtomicReaderContext ctx : reader.getTopReaderContext().leaves()) {
+ for (final AtomicReaderContext ctx : reader.leaves()) {
Terms terms = ctx.reader().terms(F_WORD);
if (terms != null)
termsEnums.add(terms.iterator(null));
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java Wed Aug 15 12:22:02 2012
@@ -334,15 +334,15 @@ public abstract class ThreadedIndexingAn
// Verify 1) IW is correctly setting
// diagnostics, and 2) segment warming for
// merged segments is actually happening:
- for(AtomicReader sub : ((DirectoryReader) s.getIndexReader()).getSequentialSubReaders()) {
- SegmentReader segReader = (SegmentReader) sub;
+ for(final AtomicReaderContext sub : s.getIndexReader().leaves()) {
+ SegmentReader segReader = (SegmentReader) sub.reader();
Map<String,String> diagnostics = segReader.getSegmentInfo().info.getDiagnostics();
assertNotNull(diagnostics);
String source = diagnostics.get("source");
assertNotNull(source);
if (source.equals("merge")) {
assertTrue("sub reader " + sub + " wasn't warmed: warmed=" + warmed + " diagnostics=" + diagnostics + " si=" + segReader.getSegmentInfo(),
- !assertMergedSegmentsWarmed || warmed.containsKey(((SegmentReader) sub).core));
+ !assertMergedSegmentsWarmed || warmed.containsKey(segReader.core));
}
}
if (s.getIndexReader().numDocs() > 0) {
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/QueryUtils.java Wed Aug 15 12:22:02 2012
@@ -353,7 +353,7 @@ public class QueryUtils {
IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader, false);
indexSearcher.setSimilarity(s.getSimilarity());
Weight w = indexSearcher.createNormalizedWeight(q);
- AtomicReaderContext ctx = previousReader.getTopReaderContext();
+ AtomicReaderContext ctx = previousReader.getContext();
Scorer scorer = w.scorer(ctx, true, false, ctx.reader().getLiveDocs());
if (scorer != null) {
boolean more = scorer.advance(lastDoc[0] + 1) != DocIdSetIterator.NO_MORE_DOCS;
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java Wed Aug 15 12:22:02 2012
@@ -179,7 +179,7 @@ public abstract class ShardSearchingTest
}
try {
for(Term term : terms) {
- final TermContext termContext = TermContext.build(s.getIndexReader().getTopReaderContext(), term, false);
+ final TermContext termContext = TermContext.build(s.getIndexReader().getContext(), term, false);
stats.put(term, s.termStatistics(term, termContext));
}
} finally {
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Wed Aug 15 12:22:02 2012
@@ -67,6 +67,7 @@ public class MockDirectoryWrapper extend
boolean noDeleteOpenFile = true;
boolean preventDoubleWrite = true;
boolean trackDiskUsage = false;
+ boolean wrapLockFactory = true;
private Set<String> unSyncedFiles;
private Set<String> createdFiles;
private Set<String> openFilesForWrite = new HashSet<String>();
@@ -114,11 +115,7 @@ public class MockDirectoryWrapper extend
this.throttledOutput = new ThrottledIndexOutput(ThrottledIndexOutput
.mBitsToBytes(40 + randomState.nextInt(10)), 5 + randomState.nextInt(5), null);
// force wrapping of lockfactory
- try {
- setLockFactory(new MockLockFactoryWrapper(this, delegate.getLockFactory()));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ this.lockFactory = new MockLockFactoryWrapper(this, delegate.getLockFactory());
// 2% of the time use rate limiter
if (randomState.nextInt(50) == 17) {
@@ -530,6 +527,19 @@ public class MockDirectoryWrapper extend
public void setAssertNoUnrefencedFilesOnClose(boolean v) {
assertNoUnreferencedFilesOnClose = v;
}
+
+ /**
+ * Set to false if you want to return the pure lockfactory
+ * and not wrap it with MockLockFactoryWrapper.
+ * <p>
+ * Be careful if you turn this off: MockDirectoryWrapper might
+ * no longer be able to detect if you forget to close an IndexWriter,
+ * and spit out horribly scary confusing exceptions instead of
+ * simply telling you that.
+ */
+ public void setWrapLockFactory(boolean v) {
+ this.wrapLockFactory = v;
+ }
@Override
public synchronized void close() throws IOException {
@@ -699,25 +709,33 @@ public class MockDirectoryWrapper extend
@Override
public synchronized Lock makeLock(String name) {
maybeYield();
- return delegate.makeLock(name);
+ return getLockFactory().makeLock(name);
}
@Override
public synchronized void clearLock(String name) throws IOException {
maybeYield();
- delegate.clearLock(name);
+ getLockFactory().clearLock(name);
}
@Override
public synchronized void setLockFactory(LockFactory lockFactory) throws IOException {
maybeYield();
+ // sneaky: we must pass the original this way to the dir, because
+ // some impls (e.g. FSDir) do instanceof here.
delegate.setLockFactory(lockFactory);
+ // now set our wrapped factory here
+ this.lockFactory = new MockLockFactoryWrapper(this, lockFactory);
}
@Override
public synchronized LockFactory getLockFactory() {
maybeYield();
- return delegate.getLockFactory();
+ if (wrapLockFactory) {
+ return lockFactory;
+ } else {
+ return delegate.getLockFactory();
+ }
}
@Override
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Wed Aug 15 12:22:02 2012
@@ -504,10 +504,10 @@ public abstract class LuceneTestCase ext
* do tests on that segment's reader. This is an utility method to help them.
*/
public static SegmentReader getOnlySegmentReader(DirectoryReader reader) {
- List<? extends IndexReader> subReaders = reader.getSequentialSubReaders();
+ List<AtomicReaderContext> subReaders = reader.leaves();
if (subReaders.size() != 1)
throw new IllegalArgumentException(reader + " has " + subReaders.size() + " segments instead of exactly one");
- final IndexReader r = subReaders.get(0);
+ final AtomicReader r = subReaders.get(0).reader();
assertTrue(r instanceof SegmentReader);
return (SegmentReader) r;
}
@@ -1166,7 +1166,7 @@ public abstract class LuceneTestCase ext
if (maybeWrap) {
r = maybeWrapReader(r);
}
- IndexSearcher ret = random.nextBoolean() ? new AssertingIndexSearcher(random, r) : new AssertingIndexSearcher(random, r.getTopReaderContext());
+ IndexSearcher ret = random.nextBoolean() ? new AssertingIndexSearcher(random, r) : new AssertingIndexSearcher(random, r.getContext());
ret.setSimilarity(classEnvRule.similarity);
return ret;
} else {
@@ -1195,7 +1195,7 @@ public abstract class LuceneTestCase ext
}
IndexSearcher ret = random.nextBoolean()
? new AssertingIndexSearcher(random, r, ex)
- : new AssertingIndexSearcher(random, r.getTopReaderContext(), ex);
+ : new AssertingIndexSearcher(random, r.getContext(), ex);
ret.setSimilarity(classEnvRule.similarity);
return ret;
}
Modified: lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java Wed Aug 15 12:22:02 2012
@@ -35,6 +35,11 @@ public class QuickPatchThreadsFilter imp
if (t.getName().equals("MemoryPoolMXBean notification dispatcher")) {
return true;
}
+
+ // forked process reaper on Unixish systems
+ if (t.getName().equals("process reaper")) {
+ return true;
+ }
return false;
}
Modified: lucene/dev/branches/pforcodec_3892/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/solr/CHANGES.txt?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/solr/CHANGES.txt (original)
+++ lucene/dev/branches/pforcodec_3892/solr/CHANGES.txt Wed Aug 15 12:22:02 2012
@@ -31,6 +31,15 @@ Upgrading from Solr 4.0.0-BETA
In order to better support distributed search mode, the TermVectorComponent's response format has been changed so that if the schema defines a uniqueKeyField, then that field value is used as the "key" for each document in it's response section, instead of the internal lucene doc id. Users w/o a uniqueKeyField will continue to see the same response format. See SOLR-3229 for more details.
+Detailed Change List
+----------------------
+
+New Features
+----------------------
+
+* SOLR-3670: New CountFieldValuesUpdateProcessorFactory makes it easy to index
+ the number of values in another field for later use at query time. (hossman)
+
Optimizations
----------------------
Modified: lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Wed Aug 15 12:22:02 2012
@@ -19,6 +19,9 @@ package org.apache.solr.client.solrj.emb
import java.io.IOException;
import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Random;
import javax.servlet.DispatcherType;
@@ -27,7 +30,8 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.solr.servlet.SolrDispatchFilter;
-import org.eclipse.jetty.server.*;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.bio.SocketConnector;
import org.eclipse.jetty.server.handler.GzipHandler;
import org.eclipse.jetty.server.session.HashSessionIdManager;
@@ -43,6 +47,8 @@ import org.eclipse.jetty.util.thread.Que
* @since solr 1.3
*/
public class JettySolrRunner {
+ static Map<JettySolrRunner,Exception> RUNNING_JETTIES = new HashMap<JettySolrRunner,Exception>();
+
Server server;
FilterHolder dispatchFilter;
@@ -202,6 +208,7 @@ public class JettySolrRunner {
if (!server.isRunning()) {
server.start();
+ RUNNING_JETTIES.put(this, new RuntimeException());
}
synchronized (JettySolrRunner.this) {
int cnt = 0;
@@ -220,9 +227,19 @@ public class JettySolrRunner {
public void stop() throws Exception {
if (!server.isStopped() && !server.isStopping()) {
server.stop();
+ RUNNING_JETTIES.remove(this);
}
server.join();
}
+
+ public static void assertStoppedJetties() {
+ if (RUNNING_JETTIES.size() > 0) {
+ Iterator<Exception> stacktraces = RUNNING_JETTIES.values().iterator();
+ Exception cause = null;
+ cause = stacktraces.next();
+ throw new RuntimeException("Found a bad one!", cause);
+ }
+ }
/**
* Returns the Local Port of the jetty Server.
Modified: lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1373365&r1=1373364&r2=1373365&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/branches/pforcodec_3892/solr/core/src/java/org/apache/solr/cloud/Overseer.java Wed Aug 15 12:22:02 2012
@@ -25,6 +25,7 @@ import java.util.Map.Entry;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ClusterState;
+import org.apache.solr.common.cloud.ClosableThread;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkCoreNodeProps;
@@ -47,7 +48,7 @@ public class Overseer {
private static Logger log = LoggerFactory.getLogger(Overseer.class);
- private class ClusterStateUpdater implements Runnable {
+ private class ClusterStateUpdater implements Runnable, ClosableThread {
private static final String DELETECORE = "deletecore";
private final ZkStateReader reader;
@@ -58,6 +59,7 @@ public class Overseer {
//Internal queue where overseer stores events that have not yet been published into cloudstate
//If Overseer dies while extracting the main queue a new overseer will start from this queue
private final DistributedQueue workQueue;
+ private volatile boolean isClosed;
public ClusterStateUpdater(final ZkStateReader reader, final String myId) {
this.zkClient = reader.getZkClient();
@@ -70,7 +72,7 @@ public class Overseer {
@Override
public void run() {
- if(amILeader() && !Overseer.this.isClosed) {
+ if(!this.isClosed && amILeader()) {
// see if there's something left from the previous Overseer and re
// process all events that were not persisted into cloud state
synchronized (reader.getUpdateLock()) { //XXX this only protects against edits inside single node
@@ -110,7 +112,7 @@ public class Overseer {
}
log.info("Starting to work on the main queue");
- while (amILeader() && !isClosed) {
+ while (!this.isClosed && amILeader()) {
synchronized (reader.getUpdateLock()) {
try {
byte[] head = stateUpdateQueue.peek();
@@ -399,12 +401,48 @@ public class Overseer {
ClusterState newState = new ClusterState(clusterState.getLiveNodes(), newStates);
return newState;
}
+
+ @Override
+ public void close() {
+ this.isClosed = true;
+ }
+
+ @Override
+ public boolean isClosed() {
+ return this.isClosed;
+ }
}
- private Thread ccThread;
+ class OverseerThread extends Thread implements ClosableThread {
+
+ private volatile boolean isClosed;
+
+ public OverseerThread(ThreadGroup tg,
+ ClusterStateUpdater clusterStateUpdater) {
+ super(tg, clusterStateUpdater);
+ }
+
+ public OverseerThread(ThreadGroup ccTg,
+ OverseerCollectionProcessor overseerCollectionProcessor, String string) {
+ super(ccTg, overseerCollectionProcessor, string);
+ }
+
+ @Override
+ public void close() {
+ this.isClosed = true;
+ }
+
+ @Override
+ public boolean isClosed() {
+ return this.isClosed;
+ }
+
+ }
+
+ private OverseerThread ccThread;
- private Thread updaterThread;
+ private OverseerThread updaterThread;
private volatile boolean isClosed;
@@ -425,11 +463,11 @@ public class Overseer {
createOverseerNode(reader.getZkClient());
//launch cluster state updater thread
ThreadGroup tg = new ThreadGroup("Overseer state updater.");
- updaterThread = new Thread(tg, new ClusterStateUpdater(reader, id));
+ updaterThread = new OverseerThread(tg, new ClusterStateUpdater(reader, id));
updaterThread.setDaemon(true);
ThreadGroup ccTg = new ThreadGroup("Overseer collection creation process.");
- ccThread = new Thread(ccTg, new OverseerCollectionProcessor(reader, id, shardHandler, adminPath),
+ ccThread = new OverseerThread(ccTg, new OverseerCollectionProcessor(reader, id, shardHandler, adminPath),
"Overseer-" + id);
ccThread.setDaemon(true);
@@ -439,6 +477,14 @@ public class Overseer {
public void close() {
isClosed = true;
+ if (updaterThread != null) {
+ updaterThread.close();
+ updaterThread.interrupt();
+ }
+ if (ccThread != null) {
+ ccThread.close();
+ ccThread.interrupt();
+ }
}
/**