You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/01/30 15:56:03 UTC
svn commit: r1237692 - in /lucene/dev/branches/lucene2858:
lucene/src/java/org/apache/lucene/index/
lucene/src/test/org/apache/lucene/index/
modules/facet/src/test/org/apache/lucene/facet/index/
Author: uschindler
Date: Mon Jan 30 14:56:02 2012
New Revision: 1237692
URL: http://svn.apache.org/viewvc?rev=1237692&view=rev
Log:
LUCENE-2858: Add a workaround for the broken PayloadProcessorProvider API that behaves like before our change (IR.directory() threw UOE for all non-directory based readers). I will open an issue to make PayloadProcessorProvider to get an AtomicReader instance as selection criteria for the processor
Modified:
lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentMerger.java
lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
lucene/dev/branches/lucene2858/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java
Modified: lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentMerger.java?rev=1237692&r1=1237691&r2=1237692&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentMerger.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/java/org/apache/lucene/index/SegmentMerger.java Mon Jan 30 14:56:02 2012
@@ -323,9 +323,12 @@ final class SegmentMerger {
docBase += docCount;
if (mergeState.payloadProcessorProvider != null) {
- // nocommit: this does not work anymore as SR/AtomicIndexReader does not know the directory anymore:
- // mergeState.dirPayloadProcessor[i] = mergeState.payloadProcessorProvider.getDirProcessor(reader.reader.directory());
- throw new UnsupportedOperationException("PayloadProcessorProvider is not supported at the moment :(");
+ // TODO: the PayloadProcessorProvider should take AtomicReader as parameter
+ // and find out by itself if it can provide a processor:
+ if (!(reader.reader instanceof SegmentReader))
+ throw new UnsupportedOperationException("Payload processing currently requires exclusively SegmentReaders to be merged.");
+ final Directory dir = ((SegmentReader) reader.reader).directory();
+ mergeState.dirPayloadProcessor[i] = mergeState.payloadProcessorProvider.getDirProcessor(dir);
}
i++;
Modified: lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java?rev=1237692&r1=1237691&r2=1237692&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java (original)
+++ lucene/dev/branches/lucene2858/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java Mon Jan 30 14:56:02 2012
@@ -37,7 +37,6 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.junit.Test;
-import org.junit.Ignore;
public class TestPayloadProcessorProvider extends LuceneTestCase {
@@ -215,8 +214,6 @@ public class TestPayloadProcessorProvide
dir.close();
}
- @Ignore("This test does not work, as PerDirPayloadProcessor is currently broken (see nocommit in SegmentMerger): "+
- "SegmentReader/AtomicReader does not know its directory. This is broken, it should be a PayLoadProcessorProvider per AtomicReader!")
@Test
public void testAddIndexes() throws Exception {
// addIndexes - single commit in each
@@ -226,8 +223,6 @@ public class TestPayloadProcessorProvide
doTest(random, true, 0, true);
}
- @Ignore("This test does not work, as PerDirPayloadProcessor is currently broken (see nocommit in SegmentMerger): "+
- "SegmentReader/AtomicReader does not know its directory. This is broken, it should be a PayLoadProcessorProvider per AtomicReader!")
@Test
public void testAddIndexesIntoExisting() throws Exception {
// addIndexes - single commit in each
@@ -237,8 +232,6 @@ public class TestPayloadProcessorProvide
doTest(random, false, NUM_DOCS, true);
}
- @Ignore("This test does not work, as PerDirPayloadProcessor is currently broken (see nocommit in SegmentMerger): "+
- "SegmentReader/AtomicReader does not know its directory. This is broken, it should be a PayLoadProcessorProvider per AtomicReader!")
@Test
public void testRegularMerges() throws Exception {
Directory dir = newDirectory();
Modified: lucene/dev/branches/lucene2858/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2858/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java?rev=1237692&r1=1237691&r2=1237692&view=diff
==============================================================================
--- lucene/dev/branches/lucene2858/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java (original)
+++ lucene/dev/branches/lucene2858/modules/facet/src/test/org/apache/lucene/facet/index/FacetsPayloadProcessorProviderTest.java Mon Jan 30 14:56:02 2012
@@ -7,13 +7,12 @@ import java.util.List;
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.analysis.MockTokenizer;
import org.apache.lucene.document.Document;
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.store.Directory;
-import org.junit.Ignore;
import org.junit.Test;
import org.apache.lucene.util.LuceneTestCase;
@@ -48,8 +47,6 @@ public class FacetsPayloadProcessorProvi
private static final int NUM_DOCS = 100;
- @Ignore("This test does not work, as PerDirPayloadProcessor is currently broken (see nocommit in SegmentMerger): "+
- "SegmentReader/AtomicReader does not know its directory. This is broken, it should be a PayLoadProcessorProvider per AtomicReader!")
@Test
public void testTaxonomyMergeUtils() throws Exception {
Directory dir = newDirectory();
@@ -70,7 +67,7 @@ public class FacetsPayloadProcessorProvi
}
private void verifyResults(Directory dir, Directory taxDir) throws IOException {
- IndexReader reader1 = IndexReader.open(dir);
+ DirectoryReader reader1 = DirectoryReader.open(dir);
DirectoryTaxonomyReader taxReader = new DirectoryTaxonomyReader(taxDir);
IndexSearcher searcher = newSearcher(reader1);
FacetSearchParams fsp = new FacetSearchParams();