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 2014/11/27 21:41:07 UTC
svn commit: r1642229 [3/7] - in /lucene/dev/branches/lucene6005: ./
dev-tools/ dev-tools/eclipse/dot.settings/
dev-tools/idea/lucene/benchmark/src/ dev-tools/idea/lucene/highlighter/
dev-tools/maven/ dev-tools/scripts/ lucene/ lucene/analysis/ lucene/a...
Modified: lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java Thu Nov 27 20:41:01 2014
@@ -18,7 +18,6 @@
package org.apache.lucene.util.packed;
import java.util.Arrays;
-import java.util.Collections;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.FixedBitSet; // for javadocs
@@ -363,10 +362,5 @@ public class EliasFanoEncoder implements
+ RamUsageEstimator.sizeOf(upperLongs)
+ RamUsageEstimator.sizeOf(upperZeroBitPositionIndex);
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/MonotonicBlockPackedReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/MonotonicBlockPackedReader.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/MonotonicBlockPackedReader.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/MonotonicBlockPackedReader.java Thu Nov 27 20:41:01 2014
@@ -24,7 +24,6 @@ import static org.apache.lucene.util.pac
import static org.apache.lucene.util.packed.PackedInts.numBlocks;
import java.io.IOException;
-import java.util.Collections;
import org.apache.lucene.store.IndexInput;
import org.apache.lucene.util.Accountable;
@@ -128,11 +127,6 @@ public class MonotonicBlockPackedReader
}
@Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
-
- @Override
public String toString() {
long avgBPV = subReaders.length == 0 ? 0 : sumBPV / subReaders.length;
return getClass().getSimpleName() + "(blocksize=" + (1<<blockShift) + ",size=" + valueCount + ",avgBPV=" + avgBPV + ")";
Modified: lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java Thu Nov 27 20:41:01 2014
@@ -19,7 +19,6 @@ package org.apache.lucene.util.packed;
import java.io.IOException;
import java.util.Arrays;
-import java.util.Collections;
import org.apache.lucene.codecs.CodecUtil;
import org.apache.lucene.index.NumericDocValues;
@@ -478,11 +477,6 @@ public class PackedInts {
* @return the number of values.
*/
public abstract int size();
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
/**
Modified: lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedLongValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedLongValues.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedLongValues.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/java/org/apache/lucene/util/packed/PackedLongValues.java Thu Nov 27 20:41:01 2014
@@ -20,7 +20,6 @@ package org.apache.lucene.util.packed;
import static org.apache.lucene.util.packed.PackedInts.checkBlockSize;
import java.util.Arrays;
-import java.util.Collections;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.ArrayUtil;
@@ -115,11 +114,6 @@ public class PackedLongValues extends Lo
public long ramBytesUsed() {
return ramBytesUsed;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
/** Return an iterator over the values of this array. */
public Iterator iterator() {
@@ -214,11 +208,6 @@ public class PackedLongValues extends Lo
return ramBytesUsed;
}
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
-
/** Return the number of elements that have been added to this builder. */
public final long size() {
return size;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestGraphTokenizers.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestGraphTokenizers.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestGraphTokenizers.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestGraphTokenizers.java Thu Nov 27 20:41:01 2014
@@ -296,7 +296,7 @@ public class TestGraphTokenizers extends
}
public void testMockGraphTokenFilterRandom() throws Exception {
- for(int iter=0;iter<10*RANDOM_MULTIPLIER;iter++) {
+ for(int iter=0;iter<3*RANDOM_MULTIPLIER;iter++) {
if (VERBOSE) {
System.out.println("\nTEST: iter=" + iter);
@@ -320,7 +320,7 @@ public class TestGraphTokenizers extends
// Two MockGraphTokenFilters
public void testDoubleMockGraphTokenFilterRandom() throws Exception {
- for(int iter=0;iter<10*RANDOM_MULTIPLIER;iter++) {
+ for(int iter=0;iter<3*RANDOM_MULTIPLIER;iter++) {
if (VERBOSE) {
System.out.println("\nTEST: iter=" + iter);
@@ -344,7 +344,7 @@ public class TestGraphTokenizers extends
}
public void testMockGraphTokenFilterBeforeHolesRandom() throws Exception {
- for(int iter=0;iter<10*RANDOM_MULTIPLIER;iter++) {
+ for(int iter=0;iter<3*RANDOM_MULTIPLIER;iter++) {
if (VERBOSE) {
System.out.println("\nTEST: iter=" + iter);
@@ -368,7 +368,7 @@ public class TestGraphTokenizers extends
}
public void testMockGraphTokenFilterAfterHolesRandom() throws Exception {
- for(int iter=0;iter<10*RANDOM_MULTIPLIER;iter++) {
+ for(int iter=0;iter<3*RANDOM_MULTIPLIER;iter++) {
if (VERBOSE) {
System.out.println("\nTEST: iter=" + iter);
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/analysis/TestMockAnalyzer.java Thu Nov 27 20:41:01 2014
@@ -232,7 +232,7 @@ public class TestMockAnalyzer extends Ba
/** blast some random strings through differently configured tokenizers */
public void testRandomRegexps() throws Exception {
- int iters = atLeast(30);
+ int iters = TEST_NIGHTLY ? atLeast(30) : atLeast(1);
for (int i = 0; i < iters; i++) {
final CharacterRunAutomaton dfa = new CharacterRunAutomaton(AutomatonTestUtil.randomAutomaton(random()), Integer.MAX_VALUE);
final boolean lowercase = random().nextBoolean();
@@ -250,7 +250,7 @@ public class TestMockAnalyzer extends Ba
}
public void testForwardOffsets() throws Exception {
- int num = atLeast(10000);
+ int num = atLeast(1000);
for (int i = 0; i < num; i++) {
String s = TestUtil.randomHtmlishString(random(), 20);
StringReader reader = new StringReader(s);
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/asserting/TestAssertingPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/asserting/TestAssertingPostingsFormat.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/asserting/TestAssertingPostingsFormat.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/asserting/TestAssertingPostingsFormat.java Thu Nov 27 20:41:01 2014
@@ -18,10 +18,10 @@ package org.apache.lucene.codecs.asserti
*/
import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.index.BaseDocValuesFormatTestCase;
+import org.apache.lucene.index.BasePostingsFormatTestCase;
-/** Test AssertingDocValuesFormat directly */
-public class TestAssertingPostingsFormat extends BaseDocValuesFormatTestCase {
+/** Test AssertingPostingsFormat directly */
+public class TestAssertingPostingsFormat extends BasePostingsFormatTestCase {
private final Codec codec = new AssertingCodec();
@Override
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java Thu Nov 27 20:41:01 2014
@@ -32,10 +32,8 @@ import org.apache.lucene.index.IndexWrit
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.junit.Test;
-import com.carrotsearch.randomizedtesting.annotations.Repeat;
import com.carrotsearch.randomizedtesting.generators.RandomInts;
-@Repeat(iterations=5) // give it a chance to test various compression modes with different chunk sizes
public class TestCompressingStoredFieldsFormat extends BaseStoredFieldsFormatTestCase {
@Override
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingTermVectorsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingTermVectorsFormat.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingTermVectorsFormat.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingTermVectorsFormat.java Thu Nov 27 20:41:01 2014
@@ -11,8 +11,6 @@ import org.apache.lucene.index.TermsEnum
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BytesRef;
-import com.carrotsearch.randomizedtesting.annotations.Repeat;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -30,7 +28,6 @@ import com.carrotsearch.randomizedtestin
* limitations under the License.
*/
-@Repeat(iterations=5) // give it a chance to test various compression modes with different chunk sizes
public class TestCompressingTermVectorsFormat extends BaseTermVectorsFormatTestCase {
@Override
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat3.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat3.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat3.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestBlockPostingsFormat3.java Thu Nov 27 20:41:01 2014
@@ -63,7 +63,8 @@ import org.apache.lucene.util.automaton.
* Tests partial enumeration (only pulling a subset of the indexed data)
*/
public class TestBlockPostingsFormat3 extends LuceneTestCase {
- static final int MAXDOC = Lucene50PostingsFormat.BLOCK_SIZE * 20;
+ private final int MAXDOC = TEST_NIGHTLY ? Lucene50PostingsFormat.BLOCK_SIZE * 20
+ : Lucene50PostingsFormat.BLOCK_SIZE * 3;
// creates 8 fields with different options and does "duels" of fields against each other
public void test() throws Exception {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/codecs/lucene50/TestLucene50DocValuesFormat.java Thu Nov 27 20:41:01 2014
@@ -56,6 +56,7 @@ public class TestLucene50DocValuesFormat
// TODO: these big methods can easily blow up some of the other ram-hungry codecs...
// for now just keep them here, as we want to test this for this format.
+ @Slow
public void testSortedSetVariableLengthBigVsStoredFields() throws Exception {
int numIterations = atLeast(1);
for (int i = 0; i < numIterations; i++) {
@@ -71,6 +72,7 @@ public class TestLucene50DocValuesFormat
}
}
+ @Slow
public void testSortedVariableLengthBigVsStoredFields() throws Exception {
int numIterations = atLeast(1);
for (int i = 0; i < numIterations; i++) {
@@ -86,6 +88,7 @@ public class TestLucene50DocValuesFormat
}
}
+ @Slow
public void testTermsEnumFixedWidth() throws Exception {
int numIterations = atLeast(1);
for (int i = 0; i < numIterations; i++) {
@@ -93,6 +96,7 @@ public class TestLucene50DocValuesFormat
}
}
+ @Slow
public void testTermsEnumVariableWidth() throws Exception {
int numIterations = atLeast(1);
for (int i = 0; i < numIterations; i++) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestBinaryDocValuesUpdates.java Thu Nov 27 20:41:01 2014
@@ -28,6 +28,7 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.Nightly;
import org.apache.lucene.util.TestUtil;
import org.junit.Ignore;
import org.junit.Test;
@@ -1236,6 +1237,7 @@ public class TestBinaryDocValuesUpdates
dir.close();
}
+ @Nightly
public void testTonsOfUpdates() throws Exception {
// LUCENE-5248: make sure that when there are many updates, we don't use too much RAM
Directory dir = newDirectory();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java Thu Nov 27 20:41:01 2014
@@ -342,7 +342,6 @@ public class TestConcurrentMergeSchedule
dir.close();
}
-
private static class TrackingCMS extends ConcurrentMergeScheduler {
long totMergedBytes;
CountDownLatch atLeastOneMerge;
@@ -459,4 +458,24 @@ public class TestConcurrentMergeSchedule
w.close();
d.close();
}
+
+ // LUCENE-6063
+ public void testMaybeStallCalled() throws Exception {
+ final AtomicBoolean wasCalled = new AtomicBoolean();
+ Directory dir = newDirectory();
+ IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random()));
+ iwc.setMergeScheduler(new ConcurrentMergeScheduler() {
+ @Override
+ protected void maybeStall() {
+ wasCalled.set(true);
+ }
+ });
+ IndexWriter w = new IndexWriter(dir, iwc);
+ w.addDocument(new Document());
+ w.forceMerge(1);
+ assertTrue(wasCalled.get());
+
+ w.close();
+ dir.close();
+ }
}
Copied: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java (from r1642110, lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java)
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java?p2=lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java&p1=lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java&r1=1642110&r2=1642229&rev=1642229&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java Thu Nov 27 20:41:01 2014
@@ -31,10 +31,12 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
+import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
-import org.apache.lucene.document.LongField;
+import org.apache.lucene.document.FieldTypes;
import org.apache.lucene.document.NumericDocValuesField;
+import org.apache.lucene.search.ConstantScoreQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.NumericRangeQuery;
@@ -45,8 +47,8 @@ import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.IOContext;
-import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.store.MockDirectoryWrapper.Throttling;
+import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
@@ -187,6 +189,7 @@ public class TestDemoParallelLeafReader
}
private class ParallelLeafDirectoryReader extends FilterDirectoryReader {
+ private final FieldTypes fieldTypes;
public ParallelLeafDirectoryReader(DirectoryReader in) {
super(in, new FilterDirectoryReader.SubReaderWrapper() {
final long currentSchemaGen = getCurrentSchemaGen();
@@ -200,6 +203,20 @@ public class TestDemoParallelLeafReader
}
}
});
+
+ // nocommit move this logic "up":
+ fieldTypes = new FieldTypes(in.getFieldTypes());
+ for(LeafReaderContext ctx : leaves()) {
+ LeafReader leafReader = ctx.reader();
+ if (leafReader instanceof ParallelLeafReader) {
+ fieldTypes.addAll(((ParallelLeafReader) leafReader).getParallelReaders()[0].getFieldTypes());
+ }
+ }
+ }
+
+ @Override
+ public FieldTypes getFieldTypes() {
+ return fieldTypes;
}
@Override
@@ -406,7 +423,7 @@ public class TestDemoParallelLeafReader
SegmentInfos infos = SegmentInfos.readLatestCommit(dir);
final LeafReader parLeafReader;
if (infos.size() == 1) {
- parLeafReader = new SegmentReader(infos.info(0), IOContext.DEFAULT);
+ parLeafReader = new SegmentReader(FieldTypes.getFieldTypes(infos.getUserData(), null, null), infos.info(0), IOContext.DEFAULT);
} else {
// This just means we didn't forceMerge above:
parLeafReader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
@@ -667,11 +684,10 @@ public class TestDemoParallelLeafReader
// Slowly parse the stored field into a new doc values field:
for(int i=0;i<maxDoc;i++) {
// TODO: is this still O(blockSize^2)?
- StoredDocument oldDoc = reader.document(i);
- Document newDoc = new Document();
- long value = Long.parseLong(oldDoc.get("text").split(" ")[1]);
- newDoc.add(new NumericDocValuesField("number", value));
- newDoc.add(new LongField("number", value, Field.Store.NO));
+ Document2 oldDoc = reader.document(i);
+ Document2 newDoc = w.newDocument();
+ long value = Long.parseLong(oldDoc.getString("text").split(" ")[1]);
+ newDoc.addLong("number", value);
w.addDocument(newDoc);
}
@@ -718,11 +734,11 @@ public class TestDemoParallelLeafReader
// Must slowly parse the stored field into a new doc values field:
for(int i=0;i<maxDoc;i++) {
// TODO: is this still O(blockSize^2)?
- StoredDocument oldDoc = reader.document(i);
- Document newDoc = new Document();
- long value = Long.parseLong(oldDoc.get("text").split(" ")[1]);
- newDoc.add(new NumericDocValuesField("number_" + newSchemaGen, value));
- newDoc.add(new LongField("number", value, Field.Store.NO));
+ Document2 oldDoc = reader.document(i);
+ Document2 newDoc = w.newDocument();
+ long value = Long.parseLong(oldDoc.getString("text").split(" ")[1]);
+ newDoc.addLong("number_" + newSchemaGen, value);
+ newDoc.addLong("number", value);
w.addDocument(newDoc);
}
} else {
@@ -731,9 +747,9 @@ public class TestDemoParallelLeafReader
assertNotNull("oldSchemaGen=" + oldSchemaGen, oldValues);
for(int i=0;i<maxDoc;i++) {
// TODO: is this still O(blockSize^2)?
- StoredDocument oldDoc = reader.document(i);
- Document newDoc = new Document();
- newDoc.add(new NumericDocValuesField("number_" + newSchemaGen, oldValues.get(i)));
+ Document2 oldDoc = reader.document(i);
+ Document2 newDoc = w.newDocument();
+ newDoc.addLong("number_" + newSchemaGen, oldValues.get(i));
w.addDocument(newDoc);
}
}
@@ -761,8 +777,8 @@ public class TestDemoParallelLeafReader
int maxDoc = r.maxDoc();
boolean failed = false;
for(int i=0;i<maxDoc;i++) {
- StoredDocument oldDoc = r.document(i);
- long value = Long.parseLong(oldDoc.get("text").split(" ")[1]);
+ Document2 oldDoc = r.document(i);
+ long value = Long.parseLong(oldDoc.getString("text").split(" ")[1]);
if (value != numbers.get(i)) {
if (DEBUG) System.out.println("FAIL: docID=" + i + " " + oldDoc+ " value=" + value + " number=" + numbers.get(i) + " numbers=" + numbers);
failed = true;
@@ -804,11 +820,10 @@ public class TestDemoParallelLeafReader
// Must slowly parse the stored field into a new doc values field:
for(int i=0;i<maxDoc;i++) {
// TODO: is this still O(blockSize^2)?
- StoredDocument oldDoc = reader.document(i);
- Document newDoc = new Document();
- long value = Long.parseLong(oldDoc.get("text").split(" ")[1]);
- newDoc.add(new NumericDocValuesField("number", newSchemaGen*value));
- newDoc.add(new LongField("number", value, Field.Store.NO));
+ Document2 oldDoc = reader.document(i);
+ Document2 newDoc = w.newDocument();
+ long value = Long.parseLong(oldDoc.getString("text").split(" ")[1]);
+ newDoc.addLong("number", newSchemaGen*value);
w.addDocument(newDoc);
}
} else {
@@ -817,9 +832,9 @@ public class TestDemoParallelLeafReader
assertNotNull("oldSchemaGen=" + oldSchemaGen, oldValues);
for(int i=0;i<maxDoc;i++) {
// TODO: is this still O(blockSize^2)?
- StoredDocument oldDoc = reader.document(i);
- Document newDoc = new Document();
- newDoc.add(new NumericDocValuesField("number", newSchemaGen*(oldValues.get(i)/oldSchemaGen)));
+ Document2 oldDoc = reader.document(i);
+ Document2 newDoc = w.newDocument();
+ newDoc.addLong("number", newSchemaGen*(oldValues.get(i)/oldSchemaGen));
w.addDocument(newDoc);
}
}
@@ -851,8 +866,8 @@ public class TestDemoParallelLeafReader
int maxDoc = r.maxDoc();
boolean failed = false;
for(int i=0;i<maxDoc;i++) {
- StoredDocument oldDoc = r.document(i);
- long value = Long.parseLong(oldDoc.get("text").split(" ")[1]);
+ Document2 oldDoc = r.document(i);
+ long value = Long.parseLong(oldDoc.getString("text").split(" ")[1]);
value *= schemaGen;
if (value != numbers.get(i)) {
System.out.println("FAIL: docID=" + i + " " + oldDoc+ " value=" + value + " number=" + numbers.get(i) + " numbers=" + numbers);
@@ -874,8 +889,8 @@ public class TestDemoParallelLeafReader
ReindexingReader reindexer = getReindexerNewDVFields(createTempDir(), currentSchemaGen);
reindexer.commit();
- Document doc = new Document();
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ Document2 doc = reindexer.w.newDocument();
+ doc.addLargeText("text", "number " + random().nextLong());
reindexer.w.addDocument(doc);
if (DEBUG) System.out.println(Thread.currentThread().getName() + ": TEST: refresh @ 1 doc");
@@ -895,8 +910,8 @@ public class TestDemoParallelLeafReader
if (DEBUG) System.out.println(Thread.currentThread().getName() + ": TEST: commit");
reindexer.commit();
- doc = new Document();
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ doc = reindexer.w.newDocument();
+ doc.addLargeText("text", "number " + random().nextLong());
reindexer.w.addDocument(doc);
if (DEBUG) System.out.println("TEST: refresh @ 2 docs");
@@ -948,7 +963,7 @@ public class TestDemoParallelLeafReader
reindexer = getReindexerNewDVFields(root, currentSchemaGen);
}
- Document doc = new Document();
+ Document2 doc = reindexer.w.newDocument();
String id;
String updateID;
if (maxID > 0 && random().nextInt(10) == 7) {
@@ -960,8 +975,8 @@ public class TestDemoParallelLeafReader
updateID = null;
}
- doc.add(newStringField("id", id, Field.Store.NO));
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ doc.addAtom("id", id);
+ doc.addLargeText("text", "number " + random().nextLong());
if (updateID == null) {
reindexer.w.addDocument(doc);
} else {
@@ -1035,7 +1050,7 @@ public class TestDemoParallelLeafReader
reindexer = getReindexerSameDVField(root, currentSchemaGen, mergingSchemaGen);
}
- Document doc = new Document();
+ Document2 doc = reindexer.w.newDocument();
String id;
String updateID;
if (maxID > 0 && random().nextInt(10) == 7) {
@@ -1047,8 +1062,8 @@ public class TestDemoParallelLeafReader
updateID = null;
}
- doc.add(newStringField("id", id, Field.Store.NO));
- doc.add(newTextField("text", "number " + TestUtil.nextInt(random(), -10000, 10000), Field.Store.YES));
+ doc.addAtom("id", id);
+ doc.addLargeText("text", "number " + TestUtil.nextInt(random(), -10000, 10000));
if (updateID == null) {
reindexer.w.addDocument(doc);
} else {
@@ -1111,8 +1126,8 @@ public class TestDemoParallelLeafReader
if (numbers != null) {
int maxDoc = leaf.maxDoc();
for(int i=0;i<maxDoc;i++) {
- StoredDocument doc = leaf.document(i);
- long value = Long.parseLong(doc.get("text").split(" ")[1]);
+ Document2 doc = leaf.document(i);
+ long value = Long.parseLong(doc.getString("text").split(" ")[1]);
long dvValue = numbers.get(i);
if (value == 0) {
assertEquals(0, dvValue);
@@ -1132,8 +1147,8 @@ public class TestDemoParallelLeafReader
// Start with initial empty commit:
reindexer.commit();
- Document doc = new Document();
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ Document2 doc = reindexer.w.newDocument();
+ doc.addLargeText("text", "number " + random().nextLong());
reindexer.w.addDocument(doc);
if (DEBUG) System.out.println("TEST: refresh @ 1 doc");
@@ -1153,8 +1168,8 @@ public class TestDemoParallelLeafReader
if (DEBUG) System.out.println("TEST: commit");
reindexer.commit();
- doc = new Document();
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ doc = reindexer.w.newDocument();
+ doc.addLargeText("text", "number " + random().nextLong());
reindexer.w.addDocument(doc);
if (DEBUG) System.out.println("TEST: refresh @ 2 docs");
@@ -1207,7 +1222,7 @@ public class TestDemoParallelLeafReader
reindexer = getReindexer(root);
}
- Document doc = new Document();
+ Document2 doc = reindexer.w.newDocument();
String id;
String updateID;
if (maxID > 0 && random().nextInt(10) == 7) {
@@ -1219,8 +1234,8 @@ public class TestDemoParallelLeafReader
updateID = null;
}
- doc.add(newStringField("id", id, Field.Store.NO));
- doc.add(newTextField("text", "number " + random().nextLong(), Field.Store.YES));
+ doc.addAtom("id", id);
+ doc.addLargeText("text", "number " + random().nextLong());
if (updateID == null) {
reindexer.w.addDocument(doc);
} else {
@@ -1275,8 +1290,8 @@ public class TestDemoParallelLeafReader
boolean failed = false;
long t0 = System.currentTimeMillis();
for(int i=0;i<maxDoc;i++) {
- StoredDocument oldDoc = r.document(i);
- long value = multiplier * Long.parseLong(oldDoc.get("text").split(" ")[1]);
+ Document2 oldDoc = r.document(i);
+ long value = multiplier * Long.parseLong(oldDoc.getString("text").split(" ")[1]);
if (value != numbers.get(i)) {
System.out.println("FAIL: docID=" + i + " " + oldDoc+ " value=" + value + " number=" + numbers.get(i) + " numbers=" + numbers);
failed = true;
@@ -1306,7 +1321,7 @@ public class TestDemoParallelLeafReader
NumericDocValues numbers = MultiDocValues.getNumericValues(s.getIndexReader(), "number");
long last = Long.MIN_VALUE;
for(ScoreDoc scoreDoc : hits.scoreDocs) {
- long value = Long.parseLong(s.doc(scoreDoc.doc).get("text").split(" ")[1]);
+ long value = Long.parseLong(s.doc(scoreDoc.doc).getString("text").split(" ")[1]);
assertTrue(value >= last);
assertEquals(value, numbers.get(scoreDoc.doc));
last = value;
@@ -1315,6 +1330,7 @@ public class TestDemoParallelLeafReader
private static void testNumericRangeQuery(IndexSearcher s) throws IOException {
NumericDocValues numbers = MultiDocValues.getNumericValues(s.getIndexReader(), "number");
+ FieldTypes fieldTypes = s.getFieldTypes();
for(int i=0;i<100;i++) {
// Confirm we can range search by the new indexed (numeric) field:
long min = random().nextLong();
@@ -1325,9 +1341,9 @@ public class TestDemoParallelLeafReader
max = x;
}
- TopDocs hits = s.search(NumericRangeQuery.newLongRange("number", min, max, true, true), 100);
+ TopDocs hits = s.search(new ConstantScoreQuery(fieldTypes.newRangeFilter("number", min, true, max, true)), 100);
for(ScoreDoc scoreDoc : hits.scoreDocs) {
- long value = Long.parseLong(s.doc(scoreDoc.doc).get("text").split(" ")[1]);
+ long value = Long.parseLong(s.doc(scoreDoc.doc).getString("text").split(" ")[1]);
assertTrue(value >= min);
assertTrue(value <= max);
assertEquals(value, numbers.get(scoreDoc.doc));
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDocCount.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDocCount.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDocCount.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestDocCount.java Thu Nov 27 20:41:01 2014
@@ -63,9 +63,6 @@ public class TestDocCount extends Lucene
private void verifyCount(IndexReader ir) throws Exception {
Fields fields = MultiFields.getFields(ir);
- if (fields == null) {
- return;
- }
for (String field : fields) {
Terms terms = fields.terms(field);
if (terms == null) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexReaderClose.java Thu Nov 27 20:41:01 2014
@@ -35,12 +35,12 @@ import org.apache.lucene.util.TestUtil;
public class TestIndexReaderClose extends LuceneTestCase {
public void testCloseUnderException() throws IOException {
+ Directory dir = newDirectory();
+ IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random(), new MockAnalyzer(random())));
+ writer.commit();
+ writer.close();
final int iters = 1000 + 1 + random().nextInt(20);
for (int j = 0; j < iters; j++) {
- Directory dir = newDirectory();
- IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random(), new MockAnalyzer(random())));
- writer.commit();
- writer.close();
DirectoryReader open = DirectoryReader.open(dir);
final boolean throwOnClose = !rarely();
LeafReader wrap = SlowCompositeReaderWrapper.wrap(open);
@@ -90,8 +90,8 @@ public class TestIndexReaderClose extend
}
assertEquals(0, count.get());
wrap.close();
- dir.close();
}
+ dir.close();
}
public void testCoreListenerOnWrapper() throws IOException {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Thu Nov 27 20:41:01 2014
@@ -1036,8 +1036,8 @@ public class TestIndexWriter extends Luc
// init this class (in servicing a first interrupt):
assertTrue(new ThreadInterruptedException(new InterruptedException()).getCause() instanceof InterruptedException);
- // issue 300 interrupts to child thread
- final int numInterrupts = atLeast(300);
+ // issue 100 interrupts to child thread
+ final int numInterrupts = atLeast(100);
int i = 0;
while(i < numInterrupts) {
// TODO: would be nice to also sometimes interrupt the
@@ -1057,51 +1057,6 @@ public class TestIndexWriter extends Luc
fail(new String(t.bytesLog.toString("UTF-8")));
}
}
-
- /** testThreadInterruptDeadlock but with 2 indexer threads */
- public void testTwoThreadsInterruptDeadlock() throws Exception {
- IndexerThreadInterrupt t1 = new IndexerThreadInterrupt(1);
- t1.setDaemon(true);
- t1.start();
-
- IndexerThreadInterrupt t2 = new IndexerThreadInterrupt(2);
- t2.setDaemon(true);
- t2.start();
-
- // Force class loader to load ThreadInterruptedException
- // up front... else we can see a false failure if 2nd
- // interrupt arrives while class loader is trying to
- // init this class (in servicing a first interrupt):
- assertTrue(new ThreadInterruptedException(new InterruptedException()).getCause() instanceof InterruptedException);
-
- // issue 300 interrupts to child thread
- final int numInterrupts = atLeast(300);
- int i = 0;
- while(i < numInterrupts) {
- // TODO: would be nice to also sometimes interrupt the
- // CMS merge threads too ...
- Thread.sleep(10);
- IndexerThreadInterrupt t = random().nextBoolean() ? t1 : t2;
- if (t.allowInterrupt) {
- i++;
- t.interrupt();
- }
- if (!t1.isAlive() && !t2.isAlive()) {
- break;
- }
- }
- t1.finish = true;
- t2.finish = true;
- t1.join();
- t2.join();
- if (t1.failed) {
- System.out.println("Thread1 failed:\n" + new String(t1.bytesLog.toString("UTF-8")));
- }
- if (t2.failed) {
- System.out.println("Thread2 failed:\n" + new String(t2.bytesLog.toString("UTF-8")));
- }
- assertFalse(t1.failed || t2.failed);
- }
public void testNoDocsIndex() throws Throwable {
Directory dir = newDirectory();
@@ -2368,6 +2323,10 @@ public class TestIndexWriter extends Luc
assumeFalse("this test can't run on Windows", Constants.WINDOWS);
MockDirectoryWrapper dir = newMockDirectory();
+ if (TestUtil.isWindowsFS(dir)) {
+ dir.close();
+ assumeFalse("this test can't run on Windows", true);
+ }
// don't act like windows either, or the test won't simulate the condition
dir.setEnableVirusScanner(false);
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Thu Nov 27 20:41:01 2014
@@ -47,8 +47,10 @@ import org.apache.lucene.store.MockDirec
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.TestUtil;
+@SuppressCodecs("SimpleText") // too slow here
public class TestIndexWriterDelete extends LuceneTestCase {
// test the simple case
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Thu Nov 27 20:41:01 2014
@@ -67,7 +67,9 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
+@SuppressCodecs("SimpleText") // too slow here
public class TestIndexWriterExceptions extends LuceneTestCase {
private static class DocCopyIterator implements Iterable<Document2> {
@@ -1830,11 +1832,19 @@ public class TestIndexWriterExceptions e
@Override
public void eval(MockDirectoryWrapper dir) throws IOException {
- StackTraceElement[] trace = new Exception().getStackTrace();
if (shouldFail.get() == false) {
+ // Only sometimes throw the exc, so we get
+ // it sometimes on creating the file, on
+ // flushing buffer, on closing the file:
return;
}
+ if (random().nextInt(3) != 2) {
+ return;
+ }
+
+ StackTraceElement[] trace = Thread.currentThread().getStackTrace();
+
boolean sawSeal = false;
boolean sawWrite = false;
for (int i = 0; i < trace.length; i++) {
@@ -1849,10 +1859,7 @@ public class TestIndexWriterExceptions e
// Don't throw exc if we are "flushing", else
// the segment is aborted and docs are lost:
- if (sawWrite && sawSeal == false && random().nextInt(3) == 2) {
- // Only sometimes throw the exc, so we get
- // it sometimes on creating the file, on
- // flushing buffer, on closing the file:
+ if (sawWrite && sawSeal == false) {
if (VERBOSE) {
System.out.println("TEST: now fail; thread=" + Thread.currentThread().getName() + " exc:");
new Throwable().printStackTrace(System.out);
@@ -2174,8 +2181,11 @@ public class TestIndexWriterExceptions e
@Override
public void eval(MockDirectoryWrapper dir) throws IOException {
+ if (random().nextInt(10) != 0) {
+ return;
+ }
boolean maybeFail = false;
- StackTraceElement[] trace = new Exception().getStackTrace();
+ StackTraceElement[] trace = Thread.currentThread().getStackTrace();
for (int i = 0; i < trace.length; i++) {
if ("rollbackInternal".equals(trace[i].getMethodName())) {
@@ -2184,7 +2194,7 @@ public class TestIndexWriterExceptions e
}
}
- if (maybeFail && random().nextInt(10) == 0) {
+ if (maybeFail) {
if (VERBOSE) {
System.out.println("TEST: now fail; thread=" + Thread.currentThread().getName() + " exc:");
new Throwable().printStackTrace(System.out);
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions2.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions2.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions2.java Thu Nov 27 20:41:01 2014
@@ -49,11 +49,13 @@ import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.Rethrow;
import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
/**
* Causes a bunch of non-aborting and aborting exceptions and checks that
* no index corruption is ever created
*/
+@SuppressCodecs("SimpleText")
public class TestIndexWriterExceptions2 extends LuceneTestCase {
// just one thread, serial merge policy, hopefully debuggable
@@ -97,7 +99,7 @@ public class TestIndexWriterExceptions2
conf.setMergeScheduler(new SerialMergeScheduler());
conf.setCodec(codec);
- int numDocs = atLeast(2000);
+ int numDocs = atLeast(500);
IndexWriter iw = new IndexWriter(dir, conf);
FieldTypes fieldTypes = iw.getFieldTypes();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterMerging.java Thu Nov 27 20:41:01 2014
@@ -325,6 +325,7 @@ public class TestIndexWriterMerging exte
dir.close();
}
+ @Slow
public void testNoWaitClose() throws Throwable {
Directory directory = newDirectory();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfMemory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfMemory.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfMemory.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfMemory.java Thu Nov 27 20:41:01 2014
@@ -47,13 +47,15 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.Rethrow;
+import org.apache.lucene.util.LuceneTestCase.Nightly;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.lucene.util.TestUtil;
-import org.junit.Ignore;
/**
* Causes a bunch of fake OOM and checks that no other exceptions are delivered instead,
* no index corruption is ever created.
*/
+@SuppressCodecs("SimpleText")
public class TestIndexWriterOutOfMemory extends LuceneTestCase {
// just one thread, serial merge policy, hopefully debuggable
@@ -80,7 +82,7 @@ public class TestIndexWriterOutOfMemory
MockDirectoryWrapper dir = null;
- final int numIterations = TEST_NIGHTLY ? atLeast(500) : atLeast(20);
+ final int numIterations = TEST_NIGHTLY ? atLeast(100) : atLeast(5);
STARTOVER:
for (int iter = 0; iter < numIterations; iter++) {
@@ -241,34 +243,35 @@ public class TestIndexWriterOutOfMemory
return null; // dead
}
}
-
+
public void testBasics() throws Exception {
final Random r = new Random(random().nextLong());
doTest(new Failure() {
@Override
public void eval(MockDirectoryWrapper dir) throws IOException {
- Exception e = new Exception();
- StackTraceElement stack[] = e.getStackTrace();
- boolean ok = false;
- for (int i = 0; i < stack.length; i++) {
- if (stack[i].getClassName().equals(IndexWriter.class.getName())) {
- ok = true;
+ if (r.nextInt(3000) == 0) {
+ StackTraceElement stack[] = Thread.currentThread().getStackTrace();
+ boolean ok = false;
+ for (int i = 0; i < stack.length; i++) {
+ if (stack[i].getClassName().equals(IndexWriter.class.getName())) {
+ ok = true;
+ }
+ }
+ if (ok) {
+ throw new OutOfMemoryError("Fake OutOfMemoryError");
}
- }
- if (ok && r.nextInt(3000) == 0) {
- throw new OutOfMemoryError("Fake OutOfMemoryError");
}
}
});
}
+ @Nightly
public void testCheckpoint() throws Exception {
final Random r = new Random(random().nextLong());
doTest(new Failure() {
@Override
public void eval(MockDirectoryWrapper dir) throws IOException {
- Exception e = new Exception();
- StackTraceElement stack[] = e.getStackTrace();
+ StackTraceElement stack[] = Thread.currentThread().getStackTrace();
boolean ok = false;
for (int i = 0; i < stack.length; i++) {
if (stack[i].getClassName().equals(IndexFileDeleter.class.getName()) && stack[i].getMethodName().equals("checkpoint")) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterThreadsToSegments.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterThreadsToSegments.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterThreadsToSegments.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterThreadsToSegments.java Thu Nov 27 20:41:01 2014
@@ -325,30 +325,36 @@ public class TestIndexWriterThreadsToSeg
// At this point the writer should have 2 thread states w/ docs; now we index with only 1 thread until we see all 1000 thread0 & thread1
// docs flushed. If the writer incorrectly holds onto previously indexed docs forever then this will run forever:
+ long counter = 0;
+ long checkAt = 100;
while (thread0Count < 1000 || thread1Count < 1000) {
Document2 doc = w.newDocument();
doc.addAtom("field", "threadIDmain");
w.addDocument(doc);
-
- for(String fileName : dir.listAll()) {
- if (fileName.endsWith(".si")) {
- String segName = IndexFileNames.parseSegmentName(fileName);
- if (segSeen.contains(segName) == false) {
- segSeen.add(segName);
- byte id[] = readSegmentInfoID(dir, fileName);
- SegmentInfo si = TestUtil.getDefaultCodec().segmentInfoFormat().read(dir, segName, id, IOContext.DEFAULT);
- si.setCodec(codec);
- SegmentCommitInfo sci = new SegmentCommitInfo(si, 0, -1, -1, -1);
- SegmentReader sr = new SegmentReader(w.getFieldTypes(),
- sci, IOContext.DEFAULT);
- try {
- thread0Count += sr.docFreq(new Term("field", "threadID0"));
- thread1Count += sr.docFreq(new Term("field", "threadID1"));
- } finally {
- sr.close();
+ if (counter++ == checkAt) {
+ for(String fileName : dir.listAll()) {
+ if (fileName.endsWith(".si")) {
+ String segName = IndexFileNames.parseSegmentName(fileName);
+ if (segSeen.contains(segName) == false) {
+ segSeen.add(segName);
+ byte id[] = readSegmentInfoID(dir, fileName);
+ SegmentInfo si = TestUtil.getDefaultCodec().segmentInfoFormat().read(dir, segName, id, IOContext.DEFAULT);
+ si.setCodec(codec);
+ SegmentCommitInfo sci = new SegmentCommitInfo(si, 0, -1, -1, -1);
+ SegmentReader sr = new SegmentReader(w.getFieldTypes(),
+ sci, IOContext.DEFAULT);
+ try {
+ thread0Count += sr.docFreq(new Term("field", "threadID0"));
+ thread1Count += sr.docFreq(new Term("field", "threadID1"));
+ } finally {
+ sr.close();
+ }
}
}
}
+
+ checkAt = (long) (checkAt * 1.25);
+ counter = 0;
}
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMixedDocValuesUpdates.java Thu Nov 27 20:41:01 2014
@@ -20,6 +20,7 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.Nightly;
import org.apache.lucene.util.TestUtil;
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
@@ -344,6 +345,7 @@ public class TestMixedDocValuesUpdates e
dir.close();
}
+ @Nightly
public void testTonsOfUpdates() throws Exception {
// LUCENE-5248: make sure that when there are many updates, we don't use too much RAM
Directory dir = newDirectory();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestMultiDocValues.java Thu Nov 27 20:41:01 2014
@@ -44,7 +44,7 @@ public class TestMultiDocValues extends
iwc.setMergePolicy(newLogMergePolicy());
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
doc.addLong("numbers", random().nextLong());
@@ -78,7 +78,7 @@ public class TestMultiDocValues extends
FieldTypes fieldTypes = iw.getFieldTypes();
fieldTypes.disableSorting("bytes");
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
doc.addBinary("bytes", new BytesRef(TestUtil.randomUnicodeString(random())));
@@ -112,7 +112,7 @@ public class TestMultiDocValues extends
iwc.setMergePolicy(newLogMergePolicy());
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
doc.addAtom("bytes", TestUtil.randomUnicodeString(random()));
@@ -154,7 +154,7 @@ public class TestMultiDocValues extends
iwc.setMergePolicy(newLogMergePolicy());
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
doc.addAtom("bytes", TestUtil.randomSimpleString(random(), 2));
@@ -194,7 +194,7 @@ public class TestMultiDocValues extends
FieldTypes fieldTypes = iw.getFieldTypes();
fieldTypes.setMultiValued("bytes");
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
int numValues = random().nextInt(5);
@@ -258,7 +258,7 @@ public class TestMultiDocValues extends
FieldTypes fieldTypes = iw.getFieldTypes();
fieldTypes.setMultiValued("bytes");
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
int numValues = random().nextInt(5);
@@ -321,7 +321,7 @@ public class TestMultiDocValues extends
FieldTypes fieldTypes = iw.getFieldTypes();
fieldTypes.setMultiValued("nums");
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
int numValues = random().nextInt(5);
@@ -372,7 +372,7 @@ public class TestMultiDocValues extends
iwc.setMergePolicy(newLogMergePolicy());
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
- int numDocs = atLeast(500);
+ int numDocs = TEST_NIGHTLY ? atLeast(500) : atLeast(50);
for (int i = 0; i < numDocs; i++) {
Document2 doc = iw.newDocument();
if (random().nextInt(4) >= 0) {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestNumericDocValuesUpdates.java Thu Nov 27 20:41:01 2014
@@ -21,6 +21,13 @@ import org.apache.lucene.document.Numeri
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.SortedSetDocValuesField;
import org.apache.lucene.document.StringField;
+import org.apache.lucene.search.FieldDoc;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Sort;
+import org.apache.lucene.search.SortField;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.search.TopFieldDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.store.NRTCachingDirectory;
@@ -28,6 +35,7 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.Nightly;
import org.apache.lucene.util.TestUtil;
import org.junit.Test;
import org.junit.Ignore;
@@ -798,6 +806,92 @@ public class TestNumericDocValuesUpdates
// nocommit fixme LUCENE-6062
@Ignore
@Test
+ public void testUpdateSegmentWithNoDocValues2() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriterConfig conf = newIndexWriterConfig(new MockAnalyzer(random()));
+ // prevent merges, otherwise by the time updates are applied
+ // (writer.close()), the segments might have merged and that update becomes
+ // legit.
+ conf.setMergePolicy(NoMergePolicy.INSTANCE);
+ IndexWriter writer = new IndexWriter(dir, conf);
+
+ // first segment with NDV
+ Document doc = new Document();
+ doc.add(new StringField("id", "doc0", Store.NO));
+ doc.add(new NumericDocValuesField("ndv", 3));
+ writer.addDocument(doc);
+ doc = new Document();
+ doc.add(new StringField("id", "doc4", Store.NO)); // document without 'ndv' field
+ writer.addDocument(doc);
+ writer.commit();
+
+ // second segment with no NDV, but another dv field "foo"
+ doc = new Document();
+ doc.add(new StringField("id", "doc1", Store.NO));
+ doc.add(new NumericDocValuesField("foo", 3));
+ writer.addDocument(doc);
+ doc = new Document();
+ doc.add(new StringField("id", "doc2", Store.NO)); // document that isn't updated
+ writer.addDocument(doc);
+ writer.commit();
+
+ // update document in the first segment - should not affect docsWithField of
+ // the document without NDV field
+ writer.updateNumericDocValue(new Term("id", "doc0"), "ndv", 5L);
+
+ // update document in the second segment - field should be added and we should
+ // be able to handle the other document correctly (e.g. no NPE)
+ writer.updateNumericDocValue(new Term("id", "doc1"), "ndv", 5L);
+ writer.close();
+
+ DirectoryReader reader = DirectoryReader.open(dir);
+ for (LeafReaderContext context : reader.leaves()) {
+ LeafReader r = context.reader();
+ NumericDocValues ndv = r.getNumericDocValues("ndv");
+ Bits docsWithField = r.getDocsWithField("ndv");
+ assertNotNull(docsWithField);
+ assertTrue(docsWithField.get(0));
+ assertEquals(5L, ndv.get(0));
+ assertFalse(docsWithField.get(1));
+ assertEquals(0L, ndv.get(1));
+ }
+ reader.close();
+
+ TestUtil.checkIndex(dir);
+
+ conf = newIndexWriterConfig(new MockAnalyzer(random()));
+ writer = new IndexWriter(dir, conf);
+ writer.forceMerge(1);
+ writer.close();
+
+ reader = DirectoryReader.open(dir);
+ LeafReader ar = getOnlySegmentReader(reader);
+ assertEquals(DocValuesType.NUMERIC, ar.getFieldInfos().fieldInfo("foo").getDocValuesType());
+ IndexSearcher searcher = new IndexSearcher(reader);
+ TopFieldDocs td;
+ // doc0
+ td = searcher.search(new TermQuery(new Term("id", "doc0")), 1,
+ new Sort(new SortField("ndv", SortField.Type.LONG)));
+ assertEquals(5L, ((FieldDoc)td.scoreDocs[0]).fields[0]);
+ // doc1
+ td = searcher.search(new TermQuery(new Term("id", "doc1")), 1,
+ new Sort(new SortField("ndv", SortField.Type.LONG), new SortField("foo", SortField.Type.LONG)));
+ assertEquals(5L, ((FieldDoc)td.scoreDocs[0]).fields[0]);
+ assertEquals(3L, ((FieldDoc)td.scoreDocs[0]).fields[1]);
+ // doc2
+ td = searcher.search(new TermQuery(new Term("id", "doc2")), 1,
+ new Sort(new SortField("ndv", SortField.Type.LONG)));
+ assertEquals(0L, ((FieldDoc)td.scoreDocs[0]).fields[0]);
+ // doc4
+ td = searcher.search(new TermQuery(new Term("id", "doc4")), 1,
+ new Sort(new SortField("ndv", SortField.Type.LONG)));
+ assertEquals(0L, ((FieldDoc)td.scoreDocs[0]).fields[0]);
+ reader.close();
+
+ dir.close();
+ }
+
+ @Test
public void testUpdateSegmentWithPostingButNoDocValues() throws Exception {
Directory dir = newDirectory();
IndexWriterConfig conf = newIndexWriterConfig(new MockAnalyzer(random()));
@@ -1184,7 +1278,7 @@ public class TestNumericDocValuesUpdates
dir.close();
}
- @Test
+ @Test @Nightly
public void testTonsOfUpdates() throws Exception {
// LUCENE-5248: make sure that when there are many updates, we don't use too much RAM
Directory dir = newDirectory();
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java Thu Nov 27 20:41:01 2014
@@ -113,7 +113,9 @@ public class TestPrefixCodedTerms extend
}
Iterator<Term> expected = superSet.iterator();
- Iterator<Term> actual = new MergedIterator<>(subs.toArray(new Iterator[0]));
+ // NOTE: currenlty using diamond operator on MergedIterator (without explicit Term class) causes
+ // errors on Eclipse Compiler (ecj) used for javadoc lint
+ Iterator<Term> actual = new MergedIterator<Term>(subs.toArray(new Iterator[0]));
while (actual.hasNext()) {
assertTrue(expected.hasNext());
assertEquals(expected.next(), actual.next());
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java Thu Nov 27 20:41:01 2014
@@ -326,7 +326,8 @@ public class TestStressIndexing2 extends
final Bits liveDocs2 = MultiFields.getLiveDocs(r2);
Fields fields = MultiFields.getFields(r2);
- if (fields == null) {
+ Terms terms2 = fields.terms(idField);
+ if (fields.size() == 0 || terms2 == null) {
// make sure r1 is in fact empty (eg has only all
// deleted docs):
Bits liveDocs = MultiFields.getLiveDocs(r1);
@@ -339,7 +340,6 @@ public class TestStressIndexing2 extends
}
return;
}
- Terms terms2 = fields.terms(idField);
TermsEnum termsEnum2 = terms2.iterator(null);
DocsEnum termDocs1 = null;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestBooleanQuery.java Thu Nov 27 20:41:01 2014
@@ -388,4 +388,23 @@ public class TestBooleanQuery extends Lu
dir.close();
}
+ public void testMinShouldMatchLeniency() throws Exception {
+ Directory dir = newDirectory();
+ IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random())));
+ Document2 doc = w.newDocument();
+ doc.addLargeText("field", "a b c d");
+ w.addDocument(doc);
+ IndexReader r = DirectoryReader.open(w, true);
+ IndexSearcher s = newSearcher(r);
+ BooleanQuery bq = new BooleanQuery();
+ bq.add(new TermQuery(new Term("field", "a")), BooleanClause.Occur.SHOULD);
+ bq.add(new TermQuery(new Term("field", "b")), BooleanClause.Occur.SHOULD);
+
+ // No doc can match: BQ has only 2 clauses and we are asking for minShouldMatch=4
+ bq.setMinimumNumberShouldMatch(4);
+ assertEquals(0, s.search(bq, 1).totalHits);
+ r.close();
+ w.close();
+ dir.close();
+ }
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestCustomSearcherSort.java Thu Nov 27 20:41:01 2014
@@ -29,10 +29,12 @@ import org.apache.lucene.document.DateTo
import org.apache.lucene.document.Document2;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
/** Unit test for sorting code. */
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestFilteredQuery.java Thu Nov 27 20:41:01 2014
@@ -37,6 +37,7 @@ import org.apache.lucene.search.Filtered
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.BitDocIdSet;
import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
@@ -66,22 +67,22 @@ public class TestFilteredQuery extends L
Document2 doc = writer.newDocument();
doc.addLargeText("field", "one two three four five");
- doc.addLargeText("sorter", "b");
+ doc.addAtom("sorter", new BytesRef("b"));
writer.addDocument (doc);
doc = writer.newDocument();
doc.addLargeText("field", "one two three four");
- doc.addLargeText("sorter", "d");
+ doc.addAtom("sorter", new BytesRef("d"));
writer.addDocument (doc);
doc = writer.newDocument();
doc.addLargeText("field", "one two three y");
- doc.addLargeText("sorter", "a");
+ doc.addAtom("sorter", new BytesRef("a"));
writer.addDocument (doc);
doc = writer.newDocument();
doc.addLargeText("field", "one two x");
- doc.addLargeText("sorter", "c");
+ doc.addAtom("sorter", new BytesRef("c"));
writer.addDocument (doc);
// tests here require single segment (eg try seed
@@ -94,7 +95,7 @@ public class TestFilteredQuery extends L
searcher = newSearcher(reader);
- query = new TermQuery (new Term ("field", "three"));
+ query = new TermQuery(new Term("field", "three"));
filter = newStaticFilterB();
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestIndexSearcher.java Thu Nov 27 20:41:01 2014
@@ -23,6 +23,7 @@ import java.util.concurrent.ThreadPoolEx
import java.util.concurrent.TimeUnit;
import org.apache.lucene.document.Document2;
+import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestSearchAfter.java Thu Nov 27 20:41:01 2014
@@ -21,6 +21,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Random;
import org.apache.lucene.document.BinaryDocValuesField;
import org.apache.lucene.document.Document2;
@@ -62,22 +63,12 @@ public class TestSearchAfter extends Luc
new SortField("double", SortField.Type.DOUBLE, false),
new SortField("bytes", SortField.Type.STRING, false),
new SortField("bytesval", SortField.Type.STRING_VAL, false),
- new SortField("intdocvalues", SortField.Type.INT, false),
- new SortField("floatdocvalues", SortField.Type.FLOAT, false),
- new SortField("sortedbytesdocvalues", SortField.Type.STRING, false),
- new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, false),
- new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, false),
new SortField("int", SortField.Type.INT, true),
new SortField("long", SortField.Type.LONG, true),
new SortField("float", SortField.Type.FLOAT, true),
new SortField("double", SortField.Type.DOUBLE, true),
new SortField("bytes", SortField.Type.STRING, true),
new SortField("bytesval", SortField.Type.STRING_VAL, true),
- new SortField("intdocvalues", SortField.Type.INT, true),
- new SortField("floatdocvalues", SortField.Type.FLOAT, true),
- new SortField("sortedbytesdocvalues", SortField.Type.STRING, true),
- new SortField("sortedbytesdocvaluesval", SortField.Type.STRING_VAL, true),
- new SortField("straightbytesdocvalues", SortField.Type.STRING_VAL, true),
SortField.FIELD_SCORE,
SortField.FIELD_DOC,
}));
@@ -140,8 +131,8 @@ public class TestSearchAfter extends Luc
fieldTypes.setIndexOptions("floatdocvalues", IndexOptions.NONE);
int numDocs = atLeast(200);
+ Random r = random();
for (int i = 0; i < numDocs; i++) {
-
Document2 doc = iw.newDocument();
if (random().nextInt(5) != 4) {
doc.addLargeText("english", English.intToEnglish(i));
@@ -150,10 +141,10 @@ public class TestSearchAfter extends Luc
doc.addLargeText("oddeven", (i % 2 == 0) ? "even" : "odd");
}
if (random().nextInt(5) != 4) {
- doc.addAtom("byte", "" + ((byte) random().nextInt()));
+ doc.addInt("byte", (byte) random().nextInt());
}
if (random().nextInt(5) != 4) {
- doc.addAtom("short", "" + ((short) random().nextInt()));
+ doc.addInt("short", (short) random().nextInt());
}
if (random().nextInt(5) != 4) {
doc.addInt("int", random().nextInt());
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestShardSearching.java Thu Nov 27 20:41:01 2014
@@ -219,9 +219,9 @@ public class TestShardSearching extends
//sort = new Sort(SortField.FIELD_DOC);
sort = null;
} else if (what == 2) {
- sort = new Sort(new SortField[] {new SortField("docid_int", SortField.Type.INT, random().nextBoolean())});
+ sort = new Sort(new SortField[] {new SortField("docid_intDV", SortField.Type.INT, random().nextBoolean())});
} else {
- sort = new Sort(new SortField[] {new SortField("title", SortField.Type.STRING, random().nextBoolean())});
+ sort = new Sort(new SortField[] {new SortField("titleDV", SortField.Type.STRING, random().nextBoolean())});
}
}
} else {
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java Thu Nov 27 20:41:01 2014
@@ -33,6 +33,7 @@ import org.apache.lucene.index.RandomInd
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java Thu Nov 27 20:41:01 2014
@@ -240,7 +240,8 @@ public class TestMultiMMap extends BaseD
}
public void testSeeking() throws Exception {
- for (int i = 0; i < 10; i++) {
+ int numIters = TEST_NIGHTLY ? 10 : 1;
+ for (int i = 0; i < numIters; i++) {
MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeeking"), 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<(i+1)]; // make sure we switch buffers
@@ -267,7 +268,8 @@ public class TestMultiMMap extends BaseD
// note instead of seeking to offset and reading length, this opens slices at the
// the various offset+length and just does readBytes.
public void testSlicedSeeking() throws Exception {
- for (int i = 0; i < 10; i++) {
+ int numIters = TEST_NIGHTLY ? 10 : 1;
+ for (int i = 0; i < numIters; i++) {
MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSlicedSeeking"), 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<(i+1)]; // make sure we switch buffers
@@ -327,7 +329,7 @@ public class TestMultiMMap extends BaseD
}
public void testRandomChunkSizes() throws Exception {
- int num = atLeast(10);
+ int num = TEST_NIGHTLY ? atLeast(10) : 3;
for (int i = 0; i < num; i++) {
assertChunking(random(), TestUtil.nextInt(random(), 20, 100));
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimitedDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimitedDirectoryWrapper.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimitedDirectoryWrapper.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimitedDirectoryWrapper.java Thu Nov 27 20:41:01 2014
@@ -19,6 +19,8 @@ package org.apache.lucene.store;
import java.nio.file.Path;
+import org.apache.lucene.util.TestUtil;
+
public class TestRateLimitedDirectoryWrapper extends BaseDirectoryTestCase {
@Override
@@ -29,7 +31,7 @@ public class TestRateLimitedDirectoryWra
((MockDirectoryWrapper)in).setEnableVirusScanner(false);
}
RateLimitedDirectoryWrapper dir = new RateLimitedDirectoryWrapper(in);
- RateLimiter limiter = new RateLimiter.SimpleRateLimiter(.1 + 3*random().nextDouble());
+ RateLimiter limiter = new RateLimiter.SimpleRateLimiter(TestUtil.nextInt(random(), 10, 40));
dir.setRateLimiter(limiter, IOContext.Context.MERGE);
return dir;
}
Modified: lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimiter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimiter.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimiter.java (original)
+++ lucene/dev/branches/lucene6005/lucene/core/src/test/org/apache/lucene/store/TestRateLimiter.java Thu Nov 27 20:41:01 2014
@@ -17,10 +17,8 @@ package org.apache.lucene.store;
* limitations under the License.
*/
-import java.util.Locale;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.lucene.store.RateLimiter.SimpleRateLimiter;
@@ -44,6 +42,24 @@ public final class TestRateLimiter exten
assertTrue("we should sleep at least 1 second but did only: " + convert + " millis", convert > 1000l);
}
+ // LUCENE-6075
+ public void testOverflowInt() throws Exception {
+ Thread t = new Thread() {
+ @Override
+ public void run() {
+ try {
+ new SimpleRateLimiter(1).pause((long) (1.5*Integer.MAX_VALUE*1024*1024/1000));
+ fail("should have been interrupted");
+ } catch (ThreadInterruptedException tie) {
+ // expected
+ }
+ }
+ };
+ t.start();
+ Thread.sleep(10);
+ t.interrupt();
+ }
+
public void testThreads() throws Exception {
double targetMBPerSec = 10.0 + 20 * random().nextDouble();
Modified: lucene/dev/branches/lucene6005/lucene/expressions/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/expressions/build.xml?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/expressions/build.xml (original)
+++ lucene/dev/branches/lucene6005/lucene/expressions/build.xml Thu Nov 27 20:41:01 2014
@@ -98,10 +98,6 @@
<property name="-grammar.relative.path" location="${grammar.path}" relative="true"/>
<replace-value property="grammar.relative.path" value="${-grammar.relative.path}${file.separator}" from="${file.separator}" to="/"/>
<java classname="org.antlr.Tool" fork="true" failonerror="true" classpathref="antlr.classpath" taskname="antlr">
- <!-- this is a hack because antlr generates code comments in nondeterministic order
- (using HashMap somewhere it should use LinkedHashMap). This hack only works for Java 7,
- Java 8 always uses murmurhash for strings and uses time-of-day as seed. -->
- <sysproperty key="jdk.map.althashing.threshold" value="-1"/>
<sysproperty key="file.encoding" value="UTF-8"/>
<sysproperty key="user.language" value="en"/>
<sysproperty key="user.country" value="US"/>
Modified: lucene/dev/branches/lucene6005/lucene/expressions/src/test/org/apache/lucene/expressions/TestExpressionSorts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/expressions/src/test/org/apache/lucene/expressions/TestExpressionSorts.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/expressions/src/test/org/apache/lucene/expressions/TestExpressionSorts.java (original)
+++ lucene/dev/branches/lucene6005/lucene/expressions/src/test/org/apache/lucene/expressions/TestExpressionSorts.java Thu Nov 27 20:41:01 2014
@@ -65,10 +65,10 @@ public class TestExpressionSorts extends
Document2 document = iw.newDocument();
document.addLargeText("english", English.intToEnglish(i));
document.addLargeText("oddeven", (i % 2 == 0) ? "even" : "odd");
- document.addAtom("byte", "" + ((byte) random().nextInt()));
- document.addAtom("short", "" + ((short) random().nextInt()));
- document.addInt("intdocvalues", random().nextInt());
- document.addFloat("floatdocvalues", random().nextFloat());
+ document.addInt("int", random().nextInt());
+ document.addLong("long", random().nextLong());
+ document.addFloat("float", random().nextFloat());
+ document.addDouble("double", random().nextDouble());
iw.addDocument(document);
}
reader = iw.getReader();
@@ -106,8 +106,6 @@ public class TestExpressionSorts extends
for (int i = 0; i < 10; i++) {
boolean reversed = random().nextBoolean();
SortField fields[] = new SortField[] {
- new SortField("intdocvalues", SortField.Type.INT, reversed),
- new SortField("floatdocvalues", SortField.Type.FLOAT, reversed),
new SortField("score", SortField.Type.SCORE)
};
Collections.shuffle(Arrays.asList(fields), random());
Modified: lucene/dev/branches/lucene6005/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java (original)
+++ lucene/dev/branches/lucene6005/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/CachedOrdinalsReader.java Thu Nov 27 20:41:01 2014
@@ -148,11 +148,6 @@ public class CachedOrdinalsReader extend
}
return mem;
}
-
- @Override
- public Iterable<? extends Accountable> getChildResources() {
- return Collections.emptyList();
- }
}
@Override
Modified: lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java?rev=1642229&r1=1642228&r2=1642229&view=diff
==============================================================================
--- lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java (original)
+++ lucene/dev/branches/lucene6005/lucene/grouping/src/test/org/apache/lucene/search/grouping/DistinctValuesCollectorTest.java Thu Nov 27 20:41:01 2014
@@ -440,6 +440,7 @@ public class DistinctValuesCollectorTest
Document doc = new Document();
doc.add(new StringField("id", String.format(Locale.ROOT, "%09d", i), Field.Store.YES));
+ doc.add(new SortedDocValuesField("id", new BytesRef(String.format(Locale.ROOT, "%09d", i))));
if (groupValue != null) {
addField(doc, groupField, groupValue);
}