You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/12/01 18:25:47 UTC

svn commit: r1642718 [4/12] - in /lucene/dev/branches/lucene2878: ./ dev-tools/ dev-tools/eclipse/dot.settings/ dev-tools/idea/.idea/ dev-tools/idea/lucene/benchmark/src/ dev-tools/idea/lucene/highlighter/ dev-tools/maven/ dev-tools/maven/solr/webapp/ ...

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/FSTEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/FSTEnum.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/FSTEnum.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/FSTEnum.java Mon Dec  1 17:25:39 2014
@@ -114,7 +114,7 @@ abstract class FSTEnum<T> {
   // TODO: should we return a status here (SEEK_FOUND / SEEK_NOT_FOUND /
   // SEEK_END)?  saves the eq check above?
 
-  /** Seeks to smallest term that's >= target. */
+  /** Seeks to smallest term that's &gt;= target. */
   protected void doSeekCeil() throws IOException {
 
     //System.out.println("    advance len=" + target.length + " curlen=" + current.length);
@@ -256,7 +256,7 @@ abstract class FSTEnum<T> {
 
   // TODO: should we return a status here (SEEK_FOUND / SEEK_NOT_FOUND /
   // SEEK_END)?  saves the eq check above?
-  /** Seeks to largest term that's <= target. */
+  /** Seeks to largest term that's &lt;= target. */
   protected void doSeekFloor() throws IOException {
 
     // TODO: possibly caller could/should provide common

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/IntsRefFSTEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/IntsRefFSTEnum.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/IntsRefFSTEnum.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/IntsRefFSTEnum.java Mon Dec  1 17:25:39 2014
@@ -58,7 +58,7 @@ public final class IntsRefFSTEnum<T> ext
     return setResult();
   }
 
-  /** Seeks to smallest term that's >= target. */
+  /** Seeks to smallest term that's &gt;= target. */
   public InputOutput<T> seekCeil(IntsRef target) throws IOException {
     this.target = target;
     targetLength = target.length;
@@ -66,7 +66,7 @@ public final class IntsRefFSTEnum<T> ext
     return setResult();
   }
 
-  /** Seeks to biggest term that's <= target. */
+  /** Seeks to biggest term that's &lt;= target. */
   public InputOutput<T> seekFloor(IntsRef target) throws IOException {
     this.target = target;
     targetLength = target.length;

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Outputs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Outputs.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Outputs.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Outputs.java Mon Dec  1 17:25:39 2014
@@ -41,13 +41,13 @@ public abstract class Outputs<T> {
   // (new object per byte/char/int) if eg used during
   // analysis
 
-  /** Eg common("foobar", "food") -> "foo" */
+  /** Eg common("foobar", "food") -&gt; "foo" */
   public abstract T common(T output1, T output2);
 
-  /** Eg subtract("foobar", "foo") -> "bar" */
+  /** Eg subtract("foobar", "foo") -&gt; "bar" */
   public abstract T subtract(T output, T inc);
 
-  /** Eg add("foo", "bar") -> "foobar" */
+  /** Eg add("foo", "bar") -&gt; "foobar" */
   public abstract T add(T prefix, T output);
 
   /** Encode an output value into a {@link DataOutput}. */

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Util.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Util.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Util.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/fst/Util.java Mon Dec  1 17:25:39 2014
@@ -588,7 +588,7 @@ public final class Util {
    * 
    * <p>
    * Note: larger FSTs (a few thousand nodes) won't even
-   * render, don't bother.  If the FST is > 2.1 GB in size
+   * render, don't bother.  If the FST is &gt; 2.1 GB in size
    * then this method will throw strange exceptions.
    * 
    * @param sameRank
@@ -600,7 +600,7 @@ public final class Util {
    *          If <code>true</code> states will have labels equal to their offsets in their
    *          binary format. Expands the graph considerably. 
    * 
-   * @see "http://www.graphviz.org/"
+   * @see <a href="http://www.graphviz.org/">graphviz project</a>
    */
   public static <T> void toDot(FST<T> fst, Writer out, boolean sameRank, boolean labelStates) 
     throws IOException {    

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/BulkOperation.java Mon Dec  1 17:25:39 2014
@@ -152,16 +152,16 @@ abstract class BulkOperation implements 
    * For every number of bits per value, there is a minimum number of
    * blocks (b) / values (v) you need to write in order to reach the next block
    * boundary:
-   *  - 16 bits per value -> b=2, v=1
-   *  - 24 bits per value -> b=3, v=1
-   *  - 50 bits per value -> b=25, v=4
-   *  - 63 bits per value -> b=63, v=8
+   *  - 16 bits per value -&gt; b=2, v=1
+   *  - 24 bits per value -&gt; b=3, v=1
+   *  - 50 bits per value -&gt; b=25, v=4
+   *  - 63 bits per value -&gt; b=63, v=8
    *  - ...
    *
    * A bulk read consists in copying <code>iterations*v</code> values that are
    * contained in <code>iterations*b</code> blocks into a <code>long[]</code>
    * (higher values of <code>iterations</code> are likely to yield a better
-   * throughput) => this requires n * (b + 8v) bytes of memory.
+   * throughput): this requires n * (b + 8v) bytes of memory.
    *
    * This method computes <code>iterations</code> as
    * <code>ramBudget / (b + 8v)</code> (since a long is 8 bytes).

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectReader.java Mon Dec  1 17:25:39 2014
@@ -30,7 +30,7 @@ import org.apache.lucene.util.LongValues
  *   int bitsPerValue = 100;
  *   IndexInput in = dir.openInput("packed", IOContext.DEFAULT);
  *   LongValues values = DirectReader.getInstance(in.randomAccessSlice(start, end), bitsPerValue);
- *   for (int i = 0; i < numValues; i++) {
+ *   for (int i = 0; i &lt; numValues; i++) {
  *     long value = values.get(i);
  *   }
  * </pre>

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectWriter.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectWriter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/DirectWriter.java Mon Dec  1 17:25:39 2014
@@ -27,13 +27,13 @@ import org.apache.lucene.store.IndexOutp
  * Class for writing packed integers to be directly read from Directory.
  * Integers can be read on-the-fly via {@link DirectReader}.
  * <p>
- * Unlike PackedInts, it optimizes for read i/o operations and supports > 2B values.
+ * Unlike PackedInts, it optimizes for read i/o operations and supports &gt; 2B values.
  * Example usage:
  * <pre class="prettyprint">
  *   int bitsPerValue = DirectWriter.bitsRequired(100); // values up to and including 100
  *   IndexOutput output = dir.createOutput("packed", IOContext.DEFAULT);
  *   DirectWriter writer = DirectWriter.getInstance(output, numberOfValues, bitsPerValue);
- *   for (int i = 0; i < numberOfValues; i++) {
+ *   for (int i = 0; i &lt; numberOfValues; i++) {
  *     writer.add(value);
  *   }
  *   writer.finish();

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoDecoder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoDecoder.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoDecoder.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoDecoder.java Mon Dec  1 17:25:39 2014
@@ -375,7 +375,7 @@ public class EliasFanoDecoder {
 
   /** Decrement efindex and setBitForIndex and
    * shift curHighLong so that it does not contain the high bits after setBitForIndex.
-   * @return true iff efindex still >= 0
+   * @return true iff efindex still {@code >= 0}
    */
   private boolean toBeforeCurrentHighBit() {
     efIndex -= 1;

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/EliasFanoEncoder.java Mon Dec  1 17:25:39 2014
@@ -29,11 +29,11 @@ import org.apache.lucene.util.ToStringUt
  * that was introduced in the 1970's by Peter Elias and Robert Fano.
  * <p>
  * The Elias-Fano encoding is a high bits / low bits representation of
- * a monotonically increasing sequence of <code>numValues > 0</code> natural numbers <code>x[i]</code>
+ * a monotonically increasing sequence of {@code numValues > 0} natural numbers <code>x[i]</code>
  * <p>
- * <code>0 <= x[0] <= x[1] <= ... <= x[numValues-2] <= x[numValues-1] <= upperBound</code>
+ * {@code 0 <= x[0] <= x[1] <= ... <= x[numValues-2] <= x[numValues-1] <= upperBound}
  * <p>
- * where <code>upperBound > 0</code> is an upper bound on the last value.
+ * where {@code upperBound > 0} is an upper bound on the last value.
  * <br>
  * The Elias-Fano encoding uses less than half a bit per encoded number more
  * than the smallest representation
@@ -52,7 +52,7 @@ import org.apache.lucene.util.ToStringUt
  * <code>0...01</code>. <br>
  * In the upper bits the total the number of 1 bits is <code>numValues</code>
  * and the total number of 0 bits is:<p>
- * <code>floor(x[numValues-1]/2**L) <= upperBound/(2**max(0, floor(log(upperBound/numValues)))) <= 2*numValues</code>
+ * {@code floor(x[numValues-1]/2**L) <= upperBound/(2**max(0, floor(log(upperBound/numValues)))) <= 2*numValues}
  * <p>
  * The Elias-Fano encoding uses at most
  * <p>
@@ -60,7 +60,7 @@ import org.apache.lucene.util.ToStringUt
  * <p>
  * bits per encoded number. With <code>upperBound</code> in these bounds (<code>p</code> is an integer):
  * <p>
- * <code>2**p < x[numValues-1] <= upperBound <= 2**(p+1)</code>
+ * {@code 2**p < x[numValues-1] <= upperBound <= 2**(p+1)}
  * <p>
  * the number of bits per encoded number is minimized.
  * <p>
@@ -120,7 +120,7 @@ public class EliasFanoEncoder implements
    * @param upperBound  At least the highest value that will be encoded.
    *                For space efficiency this should not exceed the power of two that equals
    *                or is the first higher than the actual maximum.
-   *                <br>When <code>numValues >= (upperBound/3)</code>
+   *                <br>When {@code numValues >= (upperBound/3)}
    *                a {@link FixedBitSet} will take less space.
    * @param indexInterval The number of high zero bits for which a single index entry is built.
    *                The index will have at most <code>2 * numValues / indexInterval</code> entries
@@ -131,12 +131,12 @@ public class EliasFanoEncoder implements
    *         <li><code>numValues</code> is negative, or
    *         <li><code>numValues</code> is non negative and <code>upperBound</code> is negative, or
    *         <li>the low bits do not fit in a <code>long[]</code>:
-   *             <code>(L * numValues / 64) > Integer.MAX_VALUE</code>, or
+   *             {@code (L * numValues / 64) > Integer.MAX_VALUE}, or
    *         <li>the high bits do not fit in a <code>long[]</code>:
-   *             <code>(2 * numValues / 64) > Integer.MAX_VALUE</code>, or
-   *         <li><code>indexInterval < 2</code>,
+   *             {@code (2 * numValues / 64) > Integer.MAX_VALUE}, or
+   *         <li>{@code indexInterval < 2},
    *         <li>the index bits do not fit in a <code>long[]</code>:
-   *             <code>(numValues / indexInterval * ceil(2log(3 * numValues)) / 64) > Integer.MAX_VALUE</code>.
+   *             {@code (numValues / indexInterval * ceil(2log(3 * numValues)) / 64) > Integer.MAX_VALUE}.
    *         </ul>
    */
   public EliasFanoEncoder(long numValues, long upperBound, long indexInterval) {
@@ -266,7 +266,7 @@ public class EliasFanoEncoder implements
    *  (including some space for its index) is at most about 5/6 of the size of the FixedBitSet,
    *  this is the same as comparing estimates of the number of bits accessed by a pair of FixedBitSets and
    *  by a pair of non indexed EliasFanoDocIdSets when determining the intersections of the pairs.
-   *  <br>A bit set is preferred when <code>upperbound <= 256</code>.
+   *  <br>A bit set is preferred when {@code upperbound <= 256}.
    *  <br>It is assumed that {@link #DEFAULT_INDEX_INTERVAL} is used.
    *  @param numValues The number of document identifiers that is to be encoded. Should be non negative.
    *  @param upperBound The maximum possible value for a document identifier. Should be at least <code>numValues</code>.

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java Mon Dec  1 17:25:39 2014
@@ -31,7 +31,7 @@ import org.apache.lucene.util.RamUsageEs
 
 /**
  * Simplistic compression for array of unsigned long values.
- * Each value is >= 0 and <= a specified maximum value.  The
+ * Each value is {@code >= 0} and {@code <=} a specified maximum value.  The
  * values are stored as packed ints, with each value
  * consuming a fixed number of bits.
  *

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_BulkOperation.py Mon Dec  1 17:25:39 2014
@@ -57,16 +57,16 @@ FOOTER="""
    * For every number of bits per value, there is a minimum number of
    * blocks (b) / values (v) you need to write in order to reach the next block
    * boundary:
-   *  - 16 bits per value -> b=2, v=1
-   *  - 24 bits per value -> b=3, v=1
-   *  - 50 bits per value -> b=25, v=4
-   *  - 63 bits per value -> b=63, v=8
+   *  - 16 bits per value -&gt; b=2, v=1
+   *  - 24 bits per value -&gt; b=3, v=1
+   *  - 50 bits per value -&gt; b=25, v=4
+   *  - 63 bits per value -&gt; b=63, v=8
    *  - ...
    *
    * A bulk read consists in copying <code>iterations*v</code> values that are
    * contained in <code>iterations*b</code> blocks into a <code>long[]</code>
    * (higher values of <code>iterations</code> are likely to yield a better
-   * throughput) => this requires n * (b + 8v) bytes of memory.
+   * throughput): this requires n * (b + 8v) bytes of memory.
    *
    * This method computes <code>iterations</code> as
    * <code>ramBudget / (b + 8v)</code> (since a long is 8 bytes).

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Direct.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Direct.py?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Direct.py (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Direct.py Mon Dec  1 17:25:39 2014
@@ -105,16 +105,6 @@ if __name__ == '__main__':
   public void clear() {
     Arrays.fill(values, %s0L);
   }
-
-  @Override
-  public Object getArray() {
-    return values;
-  }
-
-  @Override
-  public boolean hasArray() {
-    return true;
-  }
 """ %(MASKS[bpv], CASTS[bpv], CASTS[bpv]))
 
     if bpv == 64:

Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Packed64SingleBlock.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Packed64SingleBlock.py?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Packed64SingleBlock.py (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/util/packed/gen_Packed64SingleBlock.py Mon Dec  1 17:25:39 2014
@@ -178,7 +178,7 @@ abstract class Packed64SingleBlock exten
   public void fill(int fromIndex, int toIndex, long val) {
     assert fromIndex >= 0;
     assert fromIndex <= toIndex;
-    assert PackedInts.bitsRequired(val) <= bitsPerValue;
+    assert PackedInts.unsignedBitsRequired(val) <= bitsPerValue;
 
     final int valuesPerBlock = 64 / bitsPerValue;
     if (toIndex - fromIndex <= valuesPerBlock << 1) {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/analysis/TestLookaheadTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/analysis/TestLookaheadTokenFilter.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/analysis/TestLookaheadTokenFilter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/analysis/TestLookaheadTokenFilter.java Mon Dec  1 17:25:39 2014
@@ -32,8 +32,9 @@ public class TestLookaheadTokenFilter ex
         TokenStream output = new MockRandomLookaheadTokenFilter(random, tokenizer);
         return new TokenStreamComponents(tokenizer, output);
       }
-      };
-    checkRandomData(random(), a, 200*RANDOM_MULTIPLIER, 8192);
+    };
+    int maxLength = TEST_NIGHTLY ? 8192 : 1024;
+    checkRandomData(random(), a, 50*RANDOM_MULTIPLIER, maxLength);
   }
 
   private static class NeverPeeksLookaheadTokenFilter extends LookaheadTokenFilter<LookaheadTokenFilter.Position> {
@@ -60,8 +61,9 @@ public class TestLookaheadTokenFilter ex
         TokenStream output = new NeverPeeksLookaheadTokenFilter(tokenizer);
         return new TokenStreamComponents(tokenizer, output);
       }
-      };
-    checkRandomData(random(), a, 200*RANDOM_MULTIPLIER, 8192);
+    };
+    int maxLength = TEST_NIGHTLY ? 8192 : 1024;
+    checkRandomData(random(), a, 50*RANDOM_MULTIPLIER, maxLength);
   }
 
   public void testMissedFirstToken() throws Exception {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/codecs/compressing/TestCompressingStoredFieldsFormat.java Mon Dec  1 17:25:39 2014
@@ -84,6 +84,8 @@ public class TestCompressingStoredFields
       iw.commit();
     }
     finally {
+      // next event will cause IW to delete the old files: we use prepareCommit just as example
+      iw.prepareCommit();
       int counter = 0;
       for (String fileName : dir.listAll()) {
         if (fileName.endsWith(".fdt") || fileName.endsWith(".fdx")) {
@@ -92,7 +94,7 @@ public class TestCompressingStoredFields
       }
       // Only one .fdt and one .fdx files must have been found
       assertEquals(2, counter);
-      iw.close();
+      iw.rollback();
       dir.close();
     }
   }

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java Mon Dec  1 17:25:39 2014
@@ -36,7 +36,7 @@ import org.apache.lucene.util.LuceneTest
 import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
 
 /**
- * Test indexes ~82M docs with 52 positions each, so you get > Integer.MAX_VALUE positions
+ * Test indexes ~82M docs with 52 positions each, so you get &gt; Integer.MAX_VALUE positions
  * @lucene.experimental
  */
 @SuppressCodecs({ "SimpleText", "Memory", "Direct" })

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java Mon Dec  1 17:25:39 2014
@@ -32,7 +32,7 @@ import org.apache.lucene.util.TimeUnits;
 import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
 
 /**
- * Test indexes ~82M docs with 26 terms each, so you get > Integer.MAX_VALUE terms/docs pairs
+ * Test indexes ~82M docs with 26 terms each, so you get &gt; Integer.MAX_VALUE terms/docs pairs
  * @lucene.experimental
  */
 @SuppressCodecs({ "SimpleText", "Memory", "Direct", "Compressing" })

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java Mon Dec  1 17:25:39 2014
@@ -35,7 +35,7 @@ import org.apache.lucene.util.LuceneTest
 
 /**
  * Test indexes 2B docs with 65k freqs each, 
- * so you get > Integer.MAX_VALUE postings data for the term
+ * so you get &gt; Integer.MAX_VALUE postings data for the term
  * @lucene.experimental
  */
 @SuppressCodecs({ "SimpleText", "Memory", "Direct" })

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java Mon Dec  1 17:25:39 2014
@@ -222,7 +222,8 @@ public class TestConcurrentMergeSchedule
             setCommitOnClose(false)
     );
 
-    for(int iter=0;iter<10;iter++) {
+    int numIters = TEST_NIGHTLY ? 10 : 3;
+    for(int iter=0;iter<numIters;iter++) {
 
       for(int j=0;j<201;j++) {
         idField.setStringValue(Integer.toString(iter*201+j));

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestDemoParallelLeafReader.java Mon Dec  1 17:25:39 2014
@@ -938,7 +938,7 @@ public class TestDemoParallelLeafReader 
     ReindexingReader reindexer = null;
 
     // TODO: separate refresh thread, search threads, indexing threads
-    int numDocs = atLeast(TEST_NIGHTLY ? 20000 : 2000);
+    int numDocs = atLeast(TEST_NIGHTLY ? 20000 : 1000);
     int maxID = 0;
     Path root = createTempDir();
     int refreshEveryNumDocs = 100;
@@ -1023,7 +1023,7 @@ public class TestDemoParallelLeafReader 
     ReindexingReader reindexer = null;
 
     // TODO: separate refresh thread, search threads, indexing threads
-    int numDocs = atLeast(TEST_NIGHTLY ? 20000 : 2000);
+    int numDocs = atLeast(TEST_NIGHTLY ? 20000 : 1000);
     int maxID = 0;
     Path root = createTempDir();
     int refreshEveryNumDocs = 100;
@@ -1199,9 +1199,10 @@ public class TestDemoParallelLeafReader 
     ReindexingReader reindexer = null;
 
     // TODO: separate refresh thread, search threads, indexing threads
-    int numDocs = atLeast(3000);
+    int numDocs = atLeast(TEST_NIGHTLY ? 20000 : 1000);
     int maxID = 0;
     int refreshEveryNumDocs = 100;
+    int commitCloseNumDocs = 1000;
     for(int i=0;i<numDocs;i++) {
       if (reindexer == null) {
         reindexer = getReindexer(root);
@@ -1248,16 +1249,18 @@ public class TestDemoParallelLeafReader 
         reindexer.w.deleteDocuments(new Term("id", ""+random().nextInt(i)));
       }
 
-      if (random().nextInt(1000) == 17) {
+      if (random().nextInt(commitCloseNumDocs) == 17) {
         if (DEBUG) System.out.println("TEST: commit @ " + (i+1) + " docs");
         reindexer.commit();
+        commitCloseNumDocs = (int) (1.25 * commitCloseNumDocs);
       }
 
       // Sometimes close & reopen writer/manager, to confirm the parallel segments persist:
-      if (random().nextInt(1000) == 17) {
+      if (random().nextInt(commitCloseNumDocs) == 17) {
         if (DEBUG) System.out.println("TEST: close writer @ " + (i+1) + " docs");
         reindexer.close();
         reindexer = null;
+        commitCloseNumDocs = (int) (1.25 * commitCloseNumDocs);
       }
     }
     if (reindexer != null) {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestExitableDirectoryReader.java Mon Dec  1 17:25:39 2014
@@ -70,8 +70,8 @@ public class TestExitableDirectoryReader
       @Override
       public BytesRef next() throws IOException {
         try {
-          // Sleep for 1s before each .next() call.
-          Thread.sleep(1000);
+          // Sleep for 100ms before each .next() call.
+          Thread.sleep(100);
         } catch (InterruptedException e) {
         }
         return in.next();
@@ -118,10 +118,10 @@ public class TestExitableDirectoryReader
 
     Query query = new PrefixQuery(new Term("default", "o"));
 
-    // Set a fairly high timeout value (10 seconds) and expect the query to complete in that time frame.
+    // Set a fairly high timeout value (1 second) and expect the query to complete in that time frame.
     // Not checking the validity of the result, all we are bothered about in this test is the timing out.
     directoryReader = DirectoryReader.open(directory);
-    exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(10000));
+    exitableDirectoryReader = new ExitableDirectoryReader(directoryReader, new QueryTimeoutImpl(1000));
     reader = new TestReader(exitableDirectoryReader);
     searcher = new IndexSearcher(reader);
     searcher.search(query, 10);

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Mon Dec  1 17:25:39 2014
@@ -941,6 +941,12 @@ public class TestIndexWriter extends Luc
       // When interrupt arrives in w.close(), this can
       // lead to double-write of files:
       dir.setPreventDoubleWrite(false);
+      
+      // open/close slowly sometimes
+      dir.setUseSlowOpenClosers(true);
+      
+      // throttle a little
+      dir.setThrottling(MockDirectoryWrapper.Throttling.SOMETIMES);
 
       IndexWriter w = null;
       while(!finish) {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java Mon Dec  1 17:25:39 2014
@@ -41,10 +41,12 @@ import org.apache.lucene.store.RAMDirect
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.InfoStream;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.util.TestUtil;
 import org.apache.lucene.util.ThreadInterruptedException;
 import org.junit.Test;
 
+@SuppressCodecs("SimpleText") // too slow here
 public class TestIndexWriterReader extends LuceneTestCase {
   
   private final int numThreads = TEST_NIGHTLY ? 5 : 3;
@@ -355,6 +357,7 @@ public class TestIndexWriterReader exten
     dir1.close();
   }
 
+  @Slow
   public void testAddIndexesAndDoDeletesThreads() throws Throwable {
     final int numIter = 2;
     int numDirs = 3;
@@ -626,7 +629,7 @@ public class TestIndexWriterReader exten
     
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(2);
 
-    int num = atLeast(100);
+    int num = TEST_NIGHTLY ? atLeast(100) : atLeast(10);
     for (int i = 0; i < num; i++) {
       writer.addDocument(DocHelper.createDocument(i, "test", 4));
     }
@@ -705,6 +708,7 @@ public class TestIndexWriterReader exten
   }
 
   // Stress test reopen during addIndexes
+  @Nightly
   public void testDuringAddIndexes() throws Exception {
     Directory dir1 = getAssertNoDeletesDirectory(newDirectory());
     final IndexWriter writer = new IndexWriter(
@@ -724,19 +728,20 @@ public class TestIndexWriterReader exten
 
     DirectoryReader r = writer.getReader();
 
-    final float SECONDS = 0.5f;
-
-    final long endTime = (long) (System.currentTimeMillis() + 1000.*SECONDS);
+    final int numIterations = 10;
     final List<Throwable> excs = Collections.synchronizedList(new ArrayList<Throwable>());
 
     // Only one thread can addIndexes at a time, because
     // IndexWriter acquires a write lock in each directory:
     final Thread[] threads = new Thread[1];
+    final AtomicBoolean threadDone = new AtomicBoolean(false);
     for(int i=0;i<threads.length;i++) {
       threads[i] = new Thread() {
           @Override
           public void run() {
+            int count = 0;
             do {
+              count++;
               try {
                 writer.addIndexes(dirs);
                 writer.maybeMerge();
@@ -744,7 +749,8 @@ public class TestIndexWriterReader exten
                 excs.add(t);
                 throw new RuntimeException(t);
               }
-            } while(System.currentTimeMillis() < endTime);
+            } while(count < numIterations);
+            threadDone.set(true);
           }
         };
       threads[i].setDaemon(true);
@@ -752,17 +758,17 @@ public class TestIndexWriterReader exten
     }
 
     int lastCount = 0;
-    while(System.currentTimeMillis() < endTime) {
+    while(threadDone.get() == false) {
       DirectoryReader r2 = DirectoryReader.openIfChanged(r);
       if (r2 != null) {
         r.close();
         r = r2;
+        Query q = new TermQuery(new Term("indexname", "test"));
+        IndexSearcher searcher = newSearcher(r);
+        final int count = searcher.search(q, 10).totalHits;
+        assertTrue(count >= lastCount);
+        lastCount = count;
       }
-      Query q = new TermQuery(new Term("indexname", "test"));
-      IndexSearcher searcher = newSearcher(r);
-      final int count = searcher.search(q, 10).totalHits;
-      assertTrue(count >= lastCount);
-      lastCount = count;
     }
 
     for(int i=0;i<threads.length;i++) {
@@ -813,12 +819,11 @@ public class TestIndexWriterReader exten
 
     DirectoryReader r = writer.getReader();
 
-    final float SECONDS = 0.5f;
-
-    final long endTime = (long) (System.currentTimeMillis() + 1000.*SECONDS);
+    final int iters = TEST_NIGHTLY ? 1000 : 10;
     final List<Throwable> excs = Collections.synchronizedList(new ArrayList<Throwable>());
 
     final Thread[] threads = new Thread[numThreads];
+    final AtomicInteger remainingThreads = new AtomicInteger(numThreads);
     for(int i=0;i<numThreads;i++) {
       threads[i] = new Thread() {
           final Random r = new Random(random().nextLong());
@@ -841,7 +846,8 @@ public class TestIndexWriterReader exten
                 excs.add(t);
                 throw new RuntimeException(t);
               }
-            } while(System.currentTimeMillis() < endTime);
+            } while(count < iters);
+            remainingThreads.decrementAndGet();
           }
         };
       threads[i].setDaemon(true);
@@ -849,15 +855,15 @@ public class TestIndexWriterReader exten
     }
 
     int sum = 0;
-    while(System.currentTimeMillis() < endTime) {
+    while(remainingThreads.get() > 0) {
       DirectoryReader r2 = DirectoryReader.openIfChanged(r);
       if (r2 != null) {
         r.close();
         r = r2;
+        Query q = new TermQuery(new Term("indexname", "test"));
+        IndexSearcher searcher = newSearcher(r);
+        sum += searcher.search(q, 10).totalHits;
       }
-      Query q = new TermQuery(new Term("indexname", "test"));
-      IndexSearcher searcher = newSearcher(r);
-      sum += searcher.search(q, 10).totalHits;
     }
 
     for(int i=0;i<numThreads;i++) {
@@ -977,7 +983,7 @@ public class TestIndexWriterReader exten
     assertTrue(didWarm.get());
   }
   
-  public void testSimpleMergedSegmentWramer() throws Exception {
+  public void testSimpleMergedSegmentWarmer() throws Exception {
     Directory dir = newDirectory();
     final AtomicBoolean didWarm = new AtomicBoolean();
     InfoStream infoStream = new InfoStream() {
@@ -1111,7 +1117,7 @@ public class TestIndexWriterReader exten
   /** Make sure if all we do is open NRT reader against
    *  writer, we don't see merge starvation. */
   public void testTooManySegments() throws Exception {
-    Directory dir = getAssertNoDeletesDirectory(newDirectory());
+    Directory dir = getAssertNoDeletesDirectory(new RAMDirectory());
     // Don't use newIndexWriterConfig, because we need a
     // "sane" mergePolicy:
     IndexWriterConfig iwc = new IndexWriterConfig(new MockAnalyzer(random()));

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Mon Dec  1 17:25:39 2014
@@ -89,7 +89,7 @@ public class TestCachingWrapperFilter ex
   public void testEmpty() throws Exception {
     Query query = new BooleanQuery();
     Filter expected = new QueryWrapperFilter(query);
-    Filter actual = new CachingWrapperFilter(expected);
+    Filter actual = new CachingWrapperFilter(expected, MAYBE_CACHE_POLICY);
     assertFilterEquals(expected, actual);
   }
   
@@ -99,14 +99,14 @@ public class TestCachingWrapperFilter ex
     query.add(new TermQuery(new Term("id", "0")), BooleanClause.Occur.MUST);
     query.add(new TermQuery(new Term("id", "0")), BooleanClause.Occur.MUST_NOT);
     Filter expected = new QueryWrapperFilter(query);
-    Filter actual = new CachingWrapperFilter(expected);
+    Filter actual = new CachingWrapperFilter(expected, MAYBE_CACHE_POLICY);
     assertFilterEquals(expected, actual);
   }
   
   /** test null docidset */
   public void testEmpty3() throws Exception {
     Filter expected = new PrefixFilter(new Term("bogusField", "bogusVal"));
-    Filter actual = new CachingWrapperFilter(expected);
+    Filter actual = new CachingWrapperFilter(expected, MAYBE_CACHE_POLICY);
     assertFilterEquals(expected, actual);
   }
   
@@ -116,7 +116,7 @@ public class TestCachingWrapperFilter ex
       int id = random().nextInt(ir.maxDoc());
       Query query = new TermQuery(new Term("id", Integer.toString(id)));
       Filter expected = new QueryWrapperFilter(query);
-      Filter actual = new CachingWrapperFilter(expected);
+      Filter actual = new CachingWrapperFilter(expected, MAYBE_CACHE_POLICY);
       assertFilterEquals(expected, actual);
     }
   }
@@ -129,7 +129,7 @@ public class TestCachingWrapperFilter ex
       Query query = TermRangeQuery.newStringRange("id",
           Integer.toString(id_start), Integer.toString(id_end), true, true);
       Filter expected = new QueryWrapperFilter(query);
-      Filter actual = new CachingWrapperFilter(expected);
+      Filter actual = new CachingWrapperFilter(expected, MAYBE_CACHE_POLICY);
       assertFilterEquals(expected, actual);
     }
   }
@@ -138,7 +138,7 @@ public class TestCachingWrapperFilter ex
   public void testDense() throws Exception {
     Query query = new MatchAllDocsQuery();
     Filter expected = new QueryWrapperFilter(query);
-    Filter actual = new CachingWrapperFilter(expected);
+    Filter actual = new CachingWrapperFilter(expected, FilterCachingPolicy.ALWAYS_CACHE);
     assertFilterEquals(expected, actual);
   }
 
@@ -150,7 +150,7 @@ public class TestCachingWrapperFilter ex
     IndexReader reader = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
     LeafReaderContext context = (LeafReaderContext) reader.getContext();
     MockFilter filter = new MockFilter();
-    CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
+    CachingWrapperFilter cacher = new CachingWrapperFilter(filter, FilterCachingPolicy.ALWAYS_CACHE);
 
     // first time, nested filter is called
     DocIdSet strongRef = cacher.getDocIdSet(context, context.reader().getLiveDocs());
@@ -182,7 +182,7 @@ public class TestCachingWrapperFilter ex
         return null;
       }
     };
-    CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
+    CachingWrapperFilter cacher = new CachingWrapperFilter(filter, MAYBE_CACHE_POLICY);
 
     // the caching filter should return the empty set constant
     assertNull(cacher.getDocIdSet(context, context.reader().getLiveDocs()));
@@ -215,7 +215,7 @@ public class TestCachingWrapperFilter ex
         };
       }
     };
-    CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
+    CachingWrapperFilter cacher = new CachingWrapperFilter(filter, FilterCachingPolicy.ALWAYS_CACHE);
 
     // the caching filter should return the empty set constant
     assertNull(cacher.getDocIdSet(context, context.reader().getLiveDocs()));
@@ -227,7 +227,7 @@ public class TestCachingWrapperFilter ex
   private static void assertDocIdSetCacheable(IndexReader reader, Filter filter, boolean shouldCacheable) throws IOException {
     assertTrue(reader.getContext() instanceof LeafReaderContext);
     LeafReaderContext context = (LeafReaderContext) reader.getContext();
-    final CachingWrapperFilter cacher = new CachingWrapperFilter(filter);
+    final CachingWrapperFilter cacher = new CachingWrapperFilter(filter, FilterCachingPolicy.ALWAYS_CACHE);
     final DocIdSet originalSet = filter.getDocIdSet(context, context.reader().getLiveDocs());
     final DocIdSet cachedSet = cacher.getDocIdSet(context, context.reader().getLiveDocs());
     if (originalSet == null) {
@@ -305,7 +305,7 @@ public class TestCachingWrapperFilter ex
 
     final Filter startFilter = new QueryWrapperFilter(new TermQuery(new Term("id", "1")));
 
-    CachingWrapperFilter filter = new CachingWrapperFilter(startFilter);
+    CachingWrapperFilter filter = new CachingWrapperFilter(startFilter, FilterCachingPolicy.ALWAYS_CACHE);
 
     docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
     assertTrue(filter.ramBytesUsed() > 0);
@@ -353,7 +353,7 @@ public class TestCachingWrapperFilter ex
     assertEquals("[just filter] Should *not* find a hit...", 0, docs.totalHits);
 
     // apply deletes dynamically:
-    filter = new CachingWrapperFilter(startFilter);
+    filter = new CachingWrapperFilter(startFilter, FilterCachingPolicy.ALWAYS_CACHE);
     writer.addDocument(doc);
     reader = refreshReader(reader);
     searcher = newSearcher(reader, false);

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java Mon Dec  1 17:25:39 2014
@@ -30,6 +30,8 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.RAMDirectory;
 
 public class TestSloppyPhraseQuery extends LuceneTestCase {
 
@@ -53,7 +55,7 @@ public class TestSloppyPhraseQuery exten
 
   /**
    * Test DOC_4 and QUERY_4.
-   * QUERY_4 has a fuzzy (len=1) match to DOC_4, so all slop values > 0 should succeed.
+   * QUERY_4 has a fuzzy (len=1) match to DOC_4, so all slop values &gt; 0 should succeed.
    * But only the 3rd sequence of A's in DOC_4 will do.
    */
   public void testDoc4_Query4_All_Slops_Should_match() throws Exception {
@@ -135,7 +137,7 @@ public class TestSloppyPhraseQuery exten
   private float  checkPhraseQuery(Document doc, PhraseQuery query, int slop, int expectedNumResults) throws Exception {
     query.setSlop(slop);
 
-    Directory ramDir = newDirectory();
+    MockDirectoryWrapper ramDir = new MockDirectoryWrapper(random(), new RAMDirectory());
     RandomIndexWriter writer = new RandomIndexWriter(random(), ramDir, new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
     writer.addDocument(doc);
 

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestTopDocsMerge.java Mon Dec  1 17:25:39 2014
@@ -78,8 +78,7 @@ public class TestTopDocsMerge extends Lu
     IndexReader reader = null;
     Directory dir = null;
 
-    final int numDocs = atLeast(1000);
-    //final int numDocs = atLeast(50);
+    final int numDocs = TEST_NIGHTLY ? atLeast(1000) : atLeast(100);
 
     final String[] tokens = new String[] {"a", "b", "c", "d", "e"};
 
@@ -168,7 +167,8 @@ public class TestTopDocsMerge extends Lu
     sortFields.add(new SortField(null, SortField.Type.DOC, true));
     sortFields.add(new SortField(null, SortField.Type.DOC, false));
 
-    for(int iter=0;iter<1000*RANDOM_MULTIPLIER;iter++) {
+    int numIters = atLeast(300); 
+    for(int iter=0;iter<numIters;iter++) {
 
       // TODO: custom FieldComp...
       final Query query = new TermQuery(new Term("text", tokens[random().nextInt(tokens.length)]));

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/spans/TestBasics.java Mon Dec  1 17:25:39 2014
@@ -664,7 +664,7 @@ public class TestBasics extends LuceneTe
     boolean hasMore = true;
 
     do {
-      hasMore = skipToAccoringToJavaDocs(s1, s1.doc() + 1);
+      hasMore = skipToAccordingToJavaDocs(s1, s1.doc() + 1);
       assertEquals(hasMore, s2.skipTo(s2.doc() + 1));
       assertEquals(s1.doc(), s2.doc());
     } while (hasMore);
@@ -677,12 +677,12 @@ public class TestBasics extends LuceneTe
    *     do {
    *       if (!next())
    *       return false;
-   *     } while (target > doc());
+   *     } while (target &gt; doc());
    *     return true;
    *   }
    * </pre>
    */
-  private boolean skipToAccoringToJavaDocs(Spans s, int target)
+  private boolean skipToAccordingToJavaDocs(Spans s, int target)
       throws Exception {
     do {
       if (!s.next())

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java Mon Dec  1 17:25:39 2014
@@ -33,7 +33,7 @@ import org.apache.lucene.util.TestUtil;
  * Tests MMapDirectory's MultiMMapIndexInput
  * <p>
  * Because Java's ByteBuffer uses an int to address the
- * values, it's necessary to access a file >
+ * values, it's necessary to access a file &gt;
  * Integer.MAX_VALUE in size using multiple byte buffers.
  */
 public class TestMultiMMap extends BaseDirectoryTestCase {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestArrayUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestArrayUtil.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestArrayUtil.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestArrayUtil.java Mon Dec  1 17:25:39 2014
@@ -66,7 +66,7 @@ public class TestArrayUtil extends Lucen
     final Random rnd = random();
     final int num = atLeast(10000);
     for (int iter = 0; iter < num; iter++) {
-      final int minTargetSize = rnd.nextInt(Integer.MAX_VALUE);
+      final int minTargetSize = rnd.nextInt(ArrayUtil.MAX_ARRAY_LENGTH);
       final int elemSize = rnd.nextInt(11);
       final int v = ArrayUtil.oversize(minTargetSize, elemSize);
       assertTrue(v >= minTargetSize);

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestFixedBitSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestFixedBitSet.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestFixedBitSet.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/TestFixedBitSet.java Mon Dec  1 17:25:39 2014
@@ -208,8 +208,9 @@ public class TestFixedBitSet extends Bas
   // large enough to flush obvious bugs, small enough to run in <.5 sec as part of a
   // larger testsuite.
   public void testSmall() throws IOException {
-    doRandomSets(atLeast(1200), atLeast(1000), 1);
-    doRandomSets(atLeast(1200), atLeast(1000), 2);
+    final int iters = TEST_NIGHTLY ? atLeast(1000) : 100;
+    doRandomSets(atLeast(1200), iters, 1);
+    doRandomSets(atLeast(1200), iters, 2);
   }
 
   // uncomment to run a bigger test (~2 minutes).

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestBytesStore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestBytesStore.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestBytesStore.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestBytesStore.java Mon Dec  1 17:25:39 2014
@@ -31,8 +31,9 @@ public class TestBytesStore extends Luce
   public void testRandom() throws Exception {
 
     final int iters = atLeast(10);
+    final int maxBytes = TEST_NIGHTLY ? 200000 : 20000;
     for(int iter=0;iter<iters;iter++) {
-      final int numBytes = TestUtil.nextInt(random(), 1, 200000);
+      final int numBytes = TestUtil.nextInt(random(), 1, maxBytes);
       final byte[] expected = new byte[numBytes];
       final int blockBits = TestUtil.nextInt(random(), 8, 15);
       final BytesStore bytes = new BytesStore(blockBits);

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java Mon Dec  1 17:25:39 2014
@@ -1033,7 +1033,7 @@ public class TestFSTs extends LuceneTest
    * Test state expansion (array format) on close-to-root states. Creates
    * synthetic input that has one expanded state on each level.
    *
-   * @see "https://issues.apache.org/jira/browse/LUCENE-2933"
+   * @see <a href="https://issues.apache.org/jira/browse/LUCENE-2933">LUCENE-2933</a>
    */
   public void testExpandedCloseToRoot() throws Exception {
     class SyntheticData {

Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/packed/TestDirectPacked.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/packed/TestDirectPacked.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/packed/TestDirectPacked.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/util/packed/TestDirectPacked.java Mon Dec  1 17:25:39 2014
@@ -85,7 +85,8 @@ public class TestDirectPacked extends Lu
     
   private void doTestBpv(Directory directory, int bpv) throws Exception {
     MyRandom random = new MyRandom(random().nextLong());
-    for (int i = 0; i < 100; i++) {
+    int numIters = TEST_NIGHTLY ? 100 : 10;
+    for (int i = 0; i < numIters; i++) {
       long original[] = randomLongs(random, bpv);
       int bitsRequired = bpv == 64 ? 64 : DirectWriter.bitsRequired(1L<<(bpv-1));
       String name = "bpv" + bpv + "_" + i;

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/DrillSideways.java Mon Dec  1 17:25:39 2014
@@ -249,7 +249,7 @@ public class DrillSideways {
   /** Result of a drill sideways search, including the
    *  {@link Facets} and {@link TopDocs}. */
   public static class DrillSidewaysResult {
-    /** Combined drill down & sideways results. */
+    /** Combined drill down and sideways results. */
     public final Facets facets;
 
     /** Hits. */

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/FacetsConfig.java Mon Dec  1 17:25:39 2014
@@ -120,7 +120,7 @@ public class FacetsConfig {
   }
 
   /** Pass {@code true} if this dimension is hierarchical
-   *  (has depth > 1 paths). */
+   *  (has depth &gt; 1 paths). */
   public synchronized void setHierarchical(String dimName, boolean v) {
     DimConfig ft = fieldTypes.get(dimName);
     if (ft == null) {

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/DoubleRangeFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/DoubleRangeFacetCounts.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/DoubleRangeFacetCounts.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/DoubleRangeFacetCounts.java Mon Dec  1 17:25:39 2014
@@ -42,7 +42,7 @@ import org.apache.lucene.util.NumericUti
  *  this for dimensions that change in real-time (e.g. a
  *  relative time based dimension like "Past day", "Past 2
  *  days", etc.) or that change for each request (e.g.
- *  distance from the user's location, "< 1 km", "< 2 km",
+ *  distance from the user's location, "&lt; 1 km", "&lt; 2 km",
  *  etc.).
  *
  *  <p> If you had indexed your field using {@link

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/LongRangeFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/LongRangeFacetCounts.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/LongRangeFacetCounts.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/range/LongRangeFacetCounts.java Mon Dec  1 17:25:39 2014
@@ -38,7 +38,7 @@ import org.apache.lucene.search.DocIdSet
  *  this for dimensions that change in real-time (e.g. a
  *  relative time based dimension like "Past day", "Past 2
  *  days", etc.) or that change for each request (e.g. 
- *  distance from the user's location, "< 1 km", "< 2 km",
+ *  distance from the user's location, "&lt; 1 km", "&lt; 2 km",
  *  etc.).
  *
  *  @lucene.experimental */

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/DocValuesOrdinalsReader.java Mon Dec  1 17:25:39 2014
@@ -65,7 +65,7 @@ public class DocValuesOrdinalsReader ext
     return field;
   }
 
-  /** Subclass & override if you change the encoding. */
+  /** Subclass and override if you change the encoding. */
   protected void decode(BytesRef buf, IntsRef ordinals) {
 
     // grow the buffer up front, even if by a large number of values (buf.length)

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/OrdinalMappingLeafReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/OrdinalMappingLeafReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/OrdinalMappingLeafReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/OrdinalMappingLeafReader.java Mon Dec  1 17:25:39 2014
@@ -53,7 +53,7 @@ import org.apache.lucene.util.IntsRef;
  * IndexWriter writer = new IndexWriter(newDir, conf);
  * List&lt;LeafReaderContext&gt; leaves = reader.leaves();
  * LeafReader wrappedLeaves[] = new LeafReader[leaves.size()];
- * for (int i = 0; i < leaves.size(); i++) {
+ * for (int i = 0; i &lt; leaves.size(); i++) {
  *   wrappedLeaves[i] = new OrdinalMappingLeafReader(leaves.get(i).reader(), ordmap);
  * }
  * writer.addIndexes(new MultiReader(wrappedLeaves));

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyReader.java Mon Dec  1 17:25:39 2014
@@ -346,7 +346,7 @@ public class DirectoryTaxonomyReader ext
     }
   }
 
-  /** Returns ordinal -> label mapping, up to the provided
+  /** Returns ordinal -&gt; label mapping, up to the provided
    *  max ordinal or number of ordinals, whichever is
    *  smaller. */
   public String toString(int max) {

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java Mon Dec  1 17:25:39 2014
@@ -529,9 +529,9 @@ public class DirectoryTaxonomyWriter imp
      * Note that when TermPositions.nextPosition() is later used to
      * retrieve this value, val-1 will be returned, not val.
      * <P>
-     * IMPORTANT NOTE: Before Lucene 2.9, val>=0 were safe (for val==0,
+     * IMPORTANT NOTE: Before Lucene 2.9, val&gt;=0 were safe (for val==0,
      * the retrieved position would be -1). But starting with Lucene 2.9,
-     * this unfortunately changed, and only val>0 are safe. val=0 can
+     * this unfortunately changed, and only val&gt;0 are safe. val=0 can
      * still be used, but don't count on the value you retrieve later
      * (it could be 0 or -1, depending on circumstances or versions).
      * This change is described in Lucene's JIRA: LUCENE-1542. 

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/LabelToOrdinal.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/LabelToOrdinal.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/LabelToOrdinal.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/LabelToOrdinal.java Mon Dec  1 17:25:39 2014
@@ -20,7 +20,7 @@ import org.apache.lucene.facet.taxonomy.
  */
 
 /**
- * Abstract class for storing Label->Ordinal mappings in a taxonomy. 
+ * Abstract class for storing Label-&gt;Ordinal mappings in a taxonomy. 
  * 
  * @lucene.experimental
  */

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/TaxonomyWriterCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/TaxonomyWriterCache.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/TaxonomyWriterCache.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/TaxonomyWriterCache.java Mon Dec  1 17:25:39 2014
@@ -22,7 +22,7 @@ import org.apache.lucene.facet.taxonomy.
 
 /**
  * TaxonomyWriterCache is a relatively simple interface for a cache of
- * category->ordinal mappings, used in TaxonomyWriter implementations (such as
+ * category-&gt;ordinal mappings, used in TaxonomyWriter implementations (such as
  * {@link DirectoryTaxonomyWriter}).
  * <p>
  * It basically has put() methods for adding a mapping, and get() for looking a

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/range/TestRangeFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/range/TestRangeFacetCounts.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/range/TestRangeFacetCounts.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/range/TestRangeFacetCounts.java Mon Dec  1 17:25:39 2014
@@ -59,6 +59,7 @@ import org.apache.lucene.search.CachingW
 import org.apache.lucene.search.DocIdSet;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.Filter;
+import org.apache.lucene.search.FilterCachingPolicy;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.NumericRangeFilter;
@@ -920,7 +921,7 @@ public class TestRangeFacetCounts extend
     final AtomicBoolean filterWasUsed = new AtomicBoolean();
     if (random().nextBoolean()) {
       // Sort of silly:
-      fastMatchFilter = new CachingWrapperFilter(new QueryWrapperFilter(new MatchAllDocsQuery())) {
+      fastMatchFilter = new CachingWrapperFilter(new QueryWrapperFilter(new MatchAllDocsQuery()), FilterCachingPolicy.ALWAYS_CACHE) {
           @Override
           protected DocIdSet cacheImpl(DocIdSetIterator iterator, LeafReader reader)
             throws IOException {

Modified: lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java (original)
+++ lucene/dev/branches/lucene2878/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/TestTaxonomyCombined.java Mon Dec  1 17:25:39 2014
@@ -327,7 +327,7 @@ public class TestTaxonomyCombined extend
     indexDir.close();
   }
 
-  /**  Basic tests for TaxonomyReader's category <=> ordinal transformations
+  /**  Basic tests for TaxonomyReader's category &lt;=&gt; ordinal transformations
     (getSize(), getCategory() and getOrdinal()).
     We test that after writing the index, it can be read and all the
     categories and ordinals are there just as we expected them to be.
@@ -383,7 +383,7 @@ public class TestTaxonomyCombined extend
     We check it by comparing its results to those we could have gotten by
     looking at the category string paths (where the parentage is obvious).
     Note that after testReaderBasic(), we already know we can trust the
-    ordinal <=> category conversions.
+    ordinal &lt;=&gt; category conversions.
     
     Note: At the moment, the parent methods in the reader are deprecated,
     but this does not mean they should not be tested! Until they are
@@ -429,7 +429,7 @@ public class TestTaxonomyCombined extend
    * its results to those we could have gotten by looking at the category
    * string paths using a TaxonomyReader (where the parentage is obvious).
    * Note that after testReaderBasic(), we already know we can trust the
-   * ordinal <=> category conversions from TaxonomyReader.
+   * ordinal &lt;=&gt; category conversions from TaxonomyReader.
    *
    * The difference between testWriterParent1 and testWriterParent2 is that
    * the former closes the taxonomy writer before reopening it, while the

Modified: lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java (original)
+++ lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java Mon Dec  1 17:25:39 2014
@@ -91,7 +91,7 @@ abstract public class AbstractFirstPassG
   /**
    * Returns top groups, starting from offset.  This may
    * return null, if no groups were collected, or if the
-   * number of unique groups collected is <= offset.
+   * number of unique groups collected is &lt;= offset.
    *
    * @param groupOffset The offset in the collected groups
    * @param fillFields Whether to fill to {@link SearchGroup#sortValues}

Modified: lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java (original)
+++ lucene/dev/branches/lucene2878/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java Mon Dec  1 17:25:39 2014
@@ -311,7 +311,7 @@ public class BlockGroupingCollector exte
   // in the UI?
 
   /** Returns the grouped results.  Returns null if the
-   *  number of groups collected is <= groupOffset.
+   *  number of groups collected is &lt;= groupOffset.
    *
    *  <p><b>NOTE</b>: This collector is unable to compute
    *  the groupValue per group so it will always be null.

Modified: lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java Mon Dec  1 17:25:39 2014
@@ -21,24 +21,13 @@ package org.apache.lucene.search.highlig
  */
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Comparator;
 
 import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.Token;
 import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
-import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
-import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
-import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Fields;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.StoredDocument;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.util.ArrayUtil;
-import org.apache.lucene.util.BytesRef;
 
 /**
  * Hides implementation issues associated with obtaining a TokenStream for use
@@ -113,184 +102,47 @@ public class TokenSources {
     return ts;
   }
 
-  public static TokenStream getTokenStream(Terms vector) throws IOException {
-    // assumes the worst and makes no assumptions about token position
-    // sequences.
-    return getTokenStream(vector, false);
+  /** Simply calls {@link #getTokenStream(org.apache.lucene.index.Terms)} now. */
+  @Deprecated
+  public static TokenStream getTokenStream(Terms vector,
+                                           boolean tokenPositionsGuaranteedContiguous) throws IOException {
+    return getTokenStream(vector);
   }
 
   /**
-   * Low level api. Returns a token stream generated from a {@link Terms}. This
+   * Returns a token stream generated from a {@link Terms}. This
    * can be used to feed the highlighter with a pre-parsed token
-   * stream.  The {@link Terms} must have offsets available.
-   * 
-   * In my tests the speeds to recreate 1000 token streams using this method
-   * are: - with TermVector offset only data stored - 420 milliseconds - with
-   * TermVector offset AND position data stored - 271 milliseconds (nb timings
-   * for TermVector with position data are based on a tokenizer with contiguous
-   * positions - no overlaps or gaps) The cost of not using TermPositionVector
-   * to store pre-parsed content and using an analyzer to re-parse the original
-   * content: - reanalyzing the original content - 980 milliseconds
-   * 
-   * The re-analyze timings will typically vary depending on - 1) The complexity
-   * of the analyzer code (timings above were using a
-   * stemmer/lowercaser/stopword combo) 2) The number of other fields (Lucene
-   * reads ALL fields off the disk when accessing just one document field - can
-   * cost dear!) 3) Use of compression on field storage - could be faster due to
-   * compression (less disk IO) or slower (more CPU burn) depending on the
-   * content.
-   * 
-   * @param tokenPositionsGuaranteedContiguous true if the token position
-   *        numbers have no overlaps or gaps. If looking to eek out the last
-   *        drops of performance, set to true. If in doubt, set to false.
+   * stream.  The {@link Terms} must have offsets available. If there are no positions available,
+   * all tokens will have position increments reflecting adjacent tokens, or coincident when terms
+   * share a start offset. If there are stopwords filtered from the index, you probably want to ensure
+   * term vectors have positions so that phrase queries won't match across stopwords.
    *
    * @throws IllegalArgumentException if no offsets are available
    */
-  public static TokenStream getTokenStream(Terms tpv,
-      boolean tokenPositionsGuaranteedContiguous) 
-  throws IOException {
+  public static TokenStream getTokenStream(final Terms tpv) throws IOException {
 
     if (!tpv.hasOffsets()) {
-      throw new IllegalArgumentException("Cannot create TokenStream from Terms without offsets");
+      throw new IllegalArgumentException("Highlighting requires offsets from the TokenStream.");
+      //TokenStreamFromTermVector can handle a lack of offsets if there are positions. But
+      // highlighters require offsets, so we insist here.
     }
 
-    if (!tokenPositionsGuaranteedContiguous && tpv.hasPositions()) {
-      return new TokenStreamFromTermPositionVector(tpv);
-    }
-
-    // an object used to iterate across an array of tokens
-    final class StoredTokenStream extends TokenStream {
-      Token tokens[];
-
-      int currentToken = 0;
-
-      CharTermAttribute termAtt;
-
-      OffsetAttribute offsetAtt;
-
-      PositionIncrementAttribute posincAtt;
-
-      PayloadAttribute payloadAtt;
-
-      StoredTokenStream(Token tokens[]) {
-        this.tokens = tokens;
-        termAtt = addAttribute(CharTermAttribute.class);
-        offsetAtt = addAttribute(OffsetAttribute.class);
-        posincAtt = addAttribute(PositionIncrementAttribute.class);
-        payloadAtt = addAttribute(PayloadAttribute.class);
-      }
-
-      @Override
-      public boolean incrementToken() {
-        if (currentToken >= tokens.length) {
-          return false;
-        }
-        Token token = tokens[currentToken++];
-        clearAttributes();
-        termAtt.setEmpty().append(token);
-        offsetAtt.setOffset(token.startOffset(), token.endOffset());
-        BytesRef payload = token.getPayload();
-        if (payload != null) {
-          payloadAtt.setPayload(payload);
-        }
-        posincAtt
-            .setPositionIncrement(currentToken <= 1
-                || tokens[currentToken - 1].startOffset() > tokens[currentToken - 2]
-                    .startOffset() ? 1 : 0);
-        return true;
-      }
-    }
-
-    boolean hasPayloads = tpv.hasPayloads();
-
-    // code to reconstruct the original sequence of Tokens
-    TermsEnum termsEnum = tpv.iterator(null);
-    int totalTokens = 0;
-    while(termsEnum.next() != null) {
-      totalTokens += (int) termsEnum.totalTermFreq();
-    }
-    Token tokensInOriginalOrder[] = new Token[totalTokens];
-    ArrayList<Token> unsortedTokens = null;
-    termsEnum = tpv.iterator(null);
-    BytesRef text;
-    DocsEnum dpEnum = null;
-    while ((text = termsEnum.next()) != null) {
-
-      dpEnum = termsEnum.docsAndPositions(null, dpEnum);
-      if (dpEnum == null) {
-        throw new IllegalArgumentException(
-            "Required TermVector Offset information was not found");
-      }
-      final String term = text.utf8ToString();
-
-      dpEnum.nextDoc();
-      final int freq = dpEnum.freq();
-      for(int posUpto=0;posUpto<freq;posUpto++) {
-        final int pos = dpEnum.nextPosition();
-        if (dpEnum.startOffset() < 0) {
-          throw new IllegalArgumentException(
-              "Required TermVector Offset information was not found");
-        }
-        final Token token = new Token(term,
-                                      dpEnum.startOffset(),
-                                      dpEnum.endOffset());
-        if (hasPayloads) {
-          // Must make a deep copy of the returned payload,
-          // since D&PEnum API is allowed to re-use on every
-          // call:
-          token.setPayload(BytesRef.deepCopyOf(dpEnum.getPayload()));
-        }
-
-        if (tokenPositionsGuaranteedContiguous && pos != -1) {
-          // We have positions stored and a guarantee that the token position
-          // information is contiguous
-
-          // This may be fast BUT wont work if Tokenizers used which create >1
-          // token in same position or
-          // creates jumps in position numbers - this code would fail under those
-          // circumstances
-
-          // tokens stored with positions - can use this to index straight into
-          // sorted array
-          tokensInOriginalOrder[pos] = token;
-        } else {
-          // tokens NOT stored with positions or not guaranteed contiguous - must
-          // add to list and sort later
-          if (unsortedTokens == null) {
-            unsortedTokens = new ArrayList<>();
-          }
-          unsortedTokens.add(token);
-        }
-      }
-    }
-
-    // If the field has been stored without position data we must perform a sort
-    if (unsortedTokens != null) {
-      tokensInOriginalOrder = unsortedTokens.toArray(new Token[unsortedTokens
-          .size()]);
-      ArrayUtil.timSort(tokensInOriginalOrder, new Comparator<Token>() {
-        @Override
-        public int compare(Token t1, Token t2) {
-          if (t1.startOffset() == t2.startOffset()) {
-            return t1.endOffset() - t2.endOffset();
-          } else {
-            return t1.startOffset() - t2.startOffset();
-          }
-        }
-      });
-    }
-    return new StoredTokenStream(tokensInOriginalOrder);
+    return new TokenStreamFromTermVector(tpv);
   }
 
   /**
    * Returns a {@link TokenStream} with positions and offsets constructed from
-   * field termvectors.  If the field has no termvectors, or positions or offsets
-   * are not included in the termvector, return null.
+   * field termvectors.  If the field has no termvectors or offsets
+   * are not included in the termvector, return null.  See {@link #getTokenStream(org.apache.lucene.index.Terms)}
+   * for an explanation of what happens when positions aren't present.
+   *
    * @param reader the {@link IndexReader} to retrieve term vectors from
    * @param docId the document to retrieve termvectors for
    * @param field the field to retrieve termvectors for
-   * @return a {@link TokenStream}, or null if positions and offsets are not available
+   * @return a {@link TokenStream}, or null if offsets are not available
    * @throws IOException If there is a low-level I/O error
+   *
+   * @see #getTokenStream(org.apache.lucene.index.Terms)
    */
   public static TokenStream getTokenStreamWithOffsets(IndexReader reader, int docId,
                                                       String field) throws IOException {
@@ -305,7 +157,7 @@ public class TokenSources {
       return null;
     }
 
-    if (!vector.hasPositions() || !vector.hasOffsets()) {
+    if (!vector.hasOffsets()) {
       return null;
     }
     

Modified: lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Mon Dec  1 17:25:39 2014
@@ -84,7 +84,7 @@ public class WeightedSpanTermExtractor {
   }
 
   /**
-   * Fills a <code>Map</code> with <@link WeightedSpanTerm>s using the terms from the supplied <code>Query</code>.
+   * Fills a <code>Map</code> with {@link WeightedSpanTerm}s using the terms from the supplied <code>Query</code>.
    * 
    * @param query
    *          Query to extract Terms from
@@ -237,7 +237,7 @@ public class WeightedSpanTermExtractor {
   }
 
   /**
-   * Fills a <code>Map</code> with <@link WeightedSpanTerm>s using the terms from the supplied <code>SpanQuery</code>.
+   * Fills a <code>Map</code> with {@link WeightedSpanTerm}s using the terms from the supplied <code>SpanQuery</code>.
    * 
    * @param terms
    *          Map to place created WeightedSpanTerms in
@@ -325,7 +325,7 @@ public class WeightedSpanTermExtractor {
   }
 
   /**
-   * Fills a <code>Map</code> with <@link WeightedSpanTerm>s using the terms from the supplied <code>Query</code>.
+   * Fills a <code>Map</code> with {@link WeightedSpanTerm}s using the terms from the supplied <code>Query</code>.
    * 
    * @param terms
    *          Map to place created WeightedSpanTerms in

Modified: lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java?rev=1642718&r1=1642717&r2=1642718&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java (original)
+++ lucene/dev/branches/lucene2878/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java Mon Dec  1 17:25:39 2014
@@ -82,7 +82,7 @@ public class HighlighterPhraseTest exten
 
       final TokenStream tokenStream = TokenSources
           .getTokenStream(indexReader.getTermVector(
-              0, FIELD), false);
+              0, FIELD));
       assertEquals(highlighter.getBestFragment(new TokenStreamConcurrent(),
           TEXT), highlighter.getBestFragment(tokenStream, TEXT));
     } finally {
@@ -149,7 +149,7 @@ public class HighlighterPhraseTest exten
         assertEquals(0, position);
         final TokenStream tokenStream = TokenSources.getTokenStream(
             indexReader.getTermVector(position,
-                FIELD), false);
+                FIELD));
         assertEquals(highlighter.getBestFragment(new TokenStreamConcurrent(),
             TEXT), highlighter.getBestFragment(tokenStream, TEXT));
       }
@@ -191,7 +191,7 @@ public class HighlighterPhraseTest exten
           new QueryScorer(phraseQuery));
       final TokenStream tokenStream = TokenSources
           .getTokenStream(indexReader.getTermVector(
-              0, FIELD), false);
+              0, FIELD));
       assertEquals(
           highlighter.getBestFragment(new TokenStreamSparse(), TEXT),
           highlighter.getBestFragment(tokenStream, TEXT));
@@ -231,7 +231,7 @@ public class HighlighterPhraseTest exten
           new SimpleHTMLFormatter(), new SimpleHTMLEncoder(),
           new QueryScorer(phraseQuery));
       final TokenStream tokenStream = TokenSources.getTokenStream(
-          indexReader.getTermVector(0, FIELD), true);
+          indexReader.getTermVector(0, FIELD));
       assertEquals("the fox <B>did</B> not <B>jump</B>", highlighter
           .getBestFragment(tokenStream, TEXT));
     } finally {
@@ -271,7 +271,7 @@ public class HighlighterPhraseTest exten
           new QueryScorer(phraseQuery));
       final TokenStream tokenStream = TokenSources
           .getTokenStream(indexReader.getTermVector(
-              0, FIELD), false);
+              0, FIELD));
       assertEquals(
           highlighter.getBestFragment(new TokenStreamSparse(), TEXT),
           highlighter.getBestFragment(tokenStream, TEXT));