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);
       }