You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2015/04/07 13:39:44 UTC
svn commit: r1671816 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/memory/
lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java
Author: rmuir
Date: Tue Apr 7 11:39:43 2015
New Revision: 1671816
URL: http://svn.apache.org/r1671816
Log:
LUCENE-6404: fix 0-length payload semantics in MemoryIndex
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/memory/ (props changed)
lucene/dev/branches/branch_5x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
lucene/dev/branches/branch_5x/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java
Modified: lucene/dev/branches/branch_5x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1671816&r1=1671815&r2=1671816&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/branch_5x/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Tue Apr 7 11:39:43 2015
@@ -480,7 +480,12 @@ public class MemoryIndex {
}
if (storePayloads) {
final BytesRef payload = payloadAtt.getPayload();
- int pIndex = payload == null ? -1 : payloadsBytesRefs.append(payload);
+ final int pIndex;
+ if (payload == null || payload.length == 0) {
+ pIndex = -1;
+ } else {
+ pIndex = payloadsBytesRefs.append(payload);
+ }
postingsWriter.writeInt(pIndex);
}
sliceArray.end[ord] = postingsWriter.getCurrentOffset();
Modified: lucene/dev/branches/branch_5x/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java?rev=1671816&r1=1671815&r2=1671816&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java (original)
+++ lucene/dev/branches/branch_5x/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndexAgainstRAMDir.java Tue Apr 7 11:39:43 2015
@@ -161,6 +161,7 @@ public class TestMemoryIndexAgainstRAMDi
memory.addField("term", termField.toString(), analyzer);
LeafReader reader = (LeafReader) memory.createSearcher().getIndexReader();
+ TestUtil.checkReader(reader);
DirectoryReader competitor = DirectoryReader.open(ramdir);
duellReaders(competitor, reader);
IOUtils.close(reader, competitor);
@@ -318,6 +319,7 @@ public class TestMemoryIndexAgainstRAMDi
MemoryIndex memory = new MemoryIndex(random().nextBoolean(), false, random().nextInt(50) * 1024 * 1024);
memory.addField("foo", "bar", analyzer);
LeafReader reader = (LeafReader) memory.createSearcher().getIndexReader();
+ TestUtil.checkReader(reader);
PostingsEnum disi = TestUtil.docs(random(), reader, "foo", new BytesRef("bar"), null, null, PostingsEnum.NONE);
int docid = disi.docID();
assertEquals(-1, docid);
@@ -352,6 +354,7 @@ public class TestMemoryIndexAgainstRAMDi
for (int i = 0; i < numIters; i++) { // check reuse
memory.addField("foo", "bar", analyzer);
LeafReader reader = (LeafReader) memory.createSearcher().getIndexReader();
+ TestUtil.checkReader(reader);
assertEquals(1, reader.terms("foo").getSumTotalTermFreq());
PostingsEnum disi = reader.postings(new Term("foo", "bar"), PostingsEnum.ALL);
int docid = disi.docID();
@@ -383,6 +386,7 @@ public class TestMemoryIndexAgainstRAMDi
// This throws an NPE
assertEquals(0, mindex.search(wrappedquery), 0.00001f);
+ TestUtil.checkReader(mindex.createSearcher().getIndexReader());
}
// LUCENE-3831
@@ -395,6 +399,7 @@ public class TestMemoryIndexAgainstRAMDi
// This passes though
assertEquals(0, mindex.search(wrappedquery), 0.00001f);
+ TestUtil.checkReader(mindex.createSearcher().getIndexReader());
}
public void testSameFieldAddedMultipleTimes() throws IOException {
@@ -403,6 +408,7 @@ public class TestMemoryIndexAgainstRAMDi
mindex.addField("field", "the quick brown fox", mockAnalyzer);
mindex.addField("field", "jumps over the", mockAnalyzer);
LeafReader reader = (LeafReader) mindex.createSearcher().getIndexReader();
+ TestUtil.checkReader(reader);
assertEquals(7, reader.terms("field").getSumTotalTermFreq());
PhraseQuery query = new PhraseQuery();
query.add(new Term("field", "fox"));
@@ -415,6 +421,7 @@ public class TestMemoryIndexAgainstRAMDi
assertEquals(0, mindex.search(query), 0.00001f);
query.setSlop(10);
assertTrue("posGap" + mockAnalyzer.getPositionIncrementGap("field") , mindex.search(query) > 0.0001);
+ TestUtil.checkReader(mindex.createSearcher().getIndexReader());
}
public void testNonExistentField() throws IOException {
@@ -422,6 +429,7 @@ public class TestMemoryIndexAgainstRAMDi
MockAnalyzer mockAnalyzer = new MockAnalyzer(random());
mindex.addField("field", "the quick brown fox", mockAnalyzer);
LeafReader reader = (LeafReader) mindex.createSearcher().getIndexReader();
+ TestUtil.checkReader(reader);
assertNull(reader.getNumericDocValues("not-in-index"));
assertNull(reader.getNormValues("not-in-index"));
assertNull(reader.postings(new Term("not-in-index", "foo")));
@@ -456,6 +464,7 @@ public class TestMemoryIndexAgainstRAMDi
}
DirectoryReader competitor = DirectoryReader.open(dir);
LeafReader memIndexReader= (LeafReader) memory.createSearcher().getIndexReader();
+ TestUtil.checkReader(memIndexReader);
duellReaders(competitor, memIndexReader);
IOUtils.close(competitor, memIndexReader);
memory.reset();
@@ -471,6 +480,7 @@ public class TestMemoryIndexAgainstRAMDi
IndexSearcher searcher = memory.createSearcher();
TopDocs docs = searcher.search(new TermQuery(new Term("foo", "")), 10);
assertEquals(1, docs.totalHits);
+ TestUtil.checkReader(searcher.getIndexReader());
}
public void testDuelMemoryIndexCoreDirectoryWithArrayField() throws Exception {
@@ -507,6 +517,7 @@ public class TestMemoryIndexAgainstRAMDi
//compare term vectors
Terms ramTv = reader.getTermVector(0, field_name);
IndexReader memIndexReader = memIndex.createSearcher().getIndexReader();
+ TestUtil.checkReader(memIndexReader);
Terms memTv = memIndexReader.getTermVector(0, field_name);
compareTermVectors(ramTv, memTv, field_name);