You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/08/19 11:35:31 UTC

svn commit: r1374718 [2/3] - in /lucene/dev/branches/lucene3312: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/solr/contrib/extraction/ lucene/ lucene/analysis/ lucene/analysis/common/ lucene/analysis/common/src/java/org/apache/lucene/analysis/charfi...

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java Sun Aug 19 09:35:25 2012
@@ -32,6 +32,9 @@ import org.apache.lucene.util.PriorityQu
 import org.apache.lucene.util.packed.PackedInts;
 
 /**
+ * Utility class for merging SortedBytes DocValues
+ * instances.
+ *  
  * @lucene.internal
  */
 public final class SortedBytesMergeUtils {
@@ -54,7 +57,14 @@ public final class SortedBytesMergeUtils
     }
     return new MergeContext(comp, mergeDocCount, size, type);
   }
-
+  /**
+   * Encapsulates contextual information about the merge. 
+   * This class holds document id to ordinal mappings, offsets for
+   * variable length values and the comparator to sort the merged
+   * bytes.
+   * 
+   * @lucene.internal
+   */
   public static final class MergeContext {
     private final Comparator<BytesRef> comp;
     private final BytesRef missingValue = new BytesRef();
@@ -169,10 +179,36 @@ public final class SortedBytesMergeUtils
     return merger.currentOrd;
   }
   
+  /**
+   * Implementation of this interface consume the merged bytes with their
+   * corresponding ordinal and byte offset. The offset is the byte offset in
+   * target sorted source where the currently merged {@link BytesRef} instance
+   * should be stored at.
+   */
   public static interface BytesRefConsumer {
+    
+    /**
+     * Consumes a single {@link BytesRef}. The provided {@link BytesRef}
+     * instances are strictly increasing with respect to the used
+     * {@link Comparator} used for merging
+     * 
+     * @param ref
+     *          the {@link BytesRef} to consume
+     * @param ord
+     *          the ordinal of the given {@link BytesRef} in the merge target
+     * @param offset
+     *          the byte offset of the given {@link BytesRef} in the merge
+     *          target
+     * @throws IOException
+     *           if an {@link IOException} occurs
+     */
     public void consume(BytesRef ref, int ord, long offset) throws IOException;
   }
   
+  /**
+   * A simple {@link BytesRefConsumer} that writes the merged {@link BytesRef}
+   * instances sequentially to an {@link IndexOutput}.
+   */
   public static final class IndexOutputBytesRefConsumer implements BytesRefConsumer {
     private final IndexOutput datOut;
     
@@ -186,7 +222,15 @@ public final class SortedBytesMergeUtils
           currentMergedBytes.length);      
     }
   }
-
+  
+  /**
+   * {@link RecordMerger} merges a list of {@link SortedSourceSlice} lazily by
+   * consuming the sorted source records one by one and de-duplicates records
+   * that are shared across slices. The algorithm is based on a lazy priority queue
+   * that prevents reading merge sources into heap memory. 
+   * 
+   * @lucene.internal
+   */
   private static final class RecordMerger {
     private final MergeQueue queue;
     private final SortedSourceSlice[] top;
@@ -231,6 +275,12 @@ public final class SortedBytesMergeUtils
     }
   }
 
+  /**
+   * {@link SortedSourceSlice} represents a single {@link SortedSource} merge candidate.
+   * It encapsulates ordinal and pre-calculated target doc id to ordinal mappings.
+   * This class also holds state private to the merge process.
+   * @lucene.internal
+   */
   public static class SortedSourceSlice {
     final SortedSource source;
     final int readerIdx;

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldCache.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldCache.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldCache.java Sun Aug 19 09:35:25 2012
@@ -45,6 +45,9 @@ import org.apache.lucene.util.packed.Pac
  */
 public interface FieldCache {
 
+  /**
+   * Placeholder indicating creation of this cache is currently in-progress.
+   */
   public static final class CreationPlaceholder {
     Object value;
   }

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldComparator.java Sun Aug 19 09:35:25 2012
@@ -194,6 +194,9 @@ public abstract class FieldComparator<T>
    *  than the provided value. */
   public abstract int compareDocToValue(int doc, T value) throws IOException;
 
+  /**
+   * Base FieldComparator class for numeric types
+   */
   public static abstract class NumericComparator<T extends Number> extends FieldComparator<T> {
     protected final T missingValue;
     protected final String field;

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldValueHitQueue.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldValueHitQueue.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldValueHitQueue.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FieldValueHitQueue.java Sun Aug 19 09:35:25 2012
@@ -33,6 +33,10 @@ import org.apache.lucene.util.PriorityQu
  */
 public abstract class FieldValueHitQueue<T extends FieldValueHitQueue.Entry> extends PriorityQueue<T> {
 
+  /**
+   * Extension of ScoreDoc to also store the 
+   * {@link FieldComparator} slot.
+   */
   public static class Entry extends ScoreDoc {
     public int slot;
 

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FuzzyTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FuzzyTermsEnum.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FuzzyTermsEnum.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/FuzzyTermsEnum.java Sun Aug 19 09:35:25 2012
@@ -398,12 +398,17 @@ public class FuzzyTermsEnum extends Term
     return scale_factor;
   }
   
-  /** @lucene.internal */
+  /**
+   * reuses compiled automata across different segments,
+   * because they are independent of the index
+   * @lucene.internal */
   public static interface LevenshteinAutomataAttribute extends Attribute {
     public List<CompiledAutomaton> automata();
   }
     
-  /** @lucene.internal */
+  /** 
+   * Stores compiled automata as a list (indexed by edit distance)
+   * @lucene.internal */
   public static final class LevenshteinAutomataAttributeImpl extends AttributeImpl implements LevenshteinAutomataAttribute {
     private final List<CompiledAutomaton> automata = new ArrayList<CompiledAutomaton>();
       

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/IndexSearcher.java Sun Aug 19 09:35:25 2012
@@ -83,7 +83,7 @@ public class IndexSearcher {
   // in the next release
   protected final IndexReaderContext readerContext;
   protected final List<AtomicReaderContext> leafContexts;
-  // used with executor - each slice holds a set of leafs executed within one thread
+  /** used with executor - each slice holds a set of leafs executed within one thread */
   protected final LeafSlice[] leafSlices;
 
   // These are only used for multi-threaded search

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/ScoringRewrite.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/ScoringRewrite.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/ScoringRewrite.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/ScoringRewrite.java Sun Aug 19 09:35:25 2012
@@ -32,7 +32,11 @@ import org.apache.lucene.util.BytesRefHa
 import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.util.BytesRefHash.DirectBytesStartArray;
 
-/** @lucene.internal Only public to be accessible by spans package. */
+/** 
+ * Base rewrite method that translates each term into a query, and keeps
+ * the scores as computed by the query.
+ * <p>
+ * @lucene.internal Only public to be accessible by spans package. */
 public abstract class ScoringRewrite<Q extends Query> extends TermCollectingRewrite<Q> {
 
   /** A rewrite method that first translates each term into

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/SortField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/SortField.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/SortField.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/SortField.java Sun Aug 19 09:35:25 2012
@@ -38,6 +38,9 @@ import org.apache.lucene.util.StringHelp
  */
 public class SortField {
 
+  /**
+   * Specifies the type of the terms to be sorted, or special types such as CUSTOM
+   */
   public static enum Type {
 
     /** Sort by document score (relevance).  Sort values are Float and higher

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TimeLimitingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TimeLimitingCollector.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TimeLimitingCollector.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TimeLimitingCollector.java Sun Aug 19 09:35:25 2012
@@ -225,6 +225,8 @@ public class TimeLimitingCollector exten
   }
 
   /**
+   * Thread used to timeout search requests.
+   * Can be stopped completely with {@link TimerThread#stopTimer()}
    * @lucene.experimental
    */
   public static final class TimerThread extends Thread  {

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TopDocsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TopDocsCollector.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TopDocsCollector.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/TopDocsCollector.java Sun Aug 19 09:35:25 2012
@@ -33,8 +33,8 @@ import org.apache.lucene.util.PriorityQu
  */
 public abstract class TopDocsCollector<T extends ScoreDoc> extends Collector {
 
-  // This is used in case topDocs() is called with illegal parameters, or there
-  // simply aren't (enough) results.
+  /** This is used in case topDocs() is called with illegal parameters, or there
+   *  simply aren't (enough) results. */
   protected static final TopDocs EMPTY_TOPDOCS = new TopDocs(0, new ScoreDoc[0], Float.NaN);
   
   /**

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java Sun Aug 19 09:35:25 2012
@@ -436,6 +436,9 @@ public abstract class FSDirectory extend
     return chunkSize;
   }
 
+  /**
+   * Writes output with {@link RandomAccessFile#write(byte[], int, int)}
+   */
   protected static class FSIndexOutput extends BufferedIndexOutput {
     private final FSDirectory parent;
     private final String name;

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java Sun Aug 19 09:35:25 2012
@@ -106,6 +106,9 @@ public class NIOFSDirectory extends FSDi
     };
   }
 
+  /**
+   * Reads bytes with {@link FileChannel#read(ByteBuffer, long)}
+   */
   protected static class NIOFSIndexInput extends SimpleFSDirectory.SimpleFSIndexInput {
 
     private ByteBuffer byteBuf; // wraps the buffer for NIO

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/RAMFile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/RAMFile.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/RAMFile.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/RAMFile.java Sun Aug 19 09:35:25 2012
@@ -19,7 +19,9 @@ package org.apache.lucene.store;
 
 import java.util.ArrayList;
 
-/** @lucene.internal */
+/** 
+ * Represents a file in RAM as a list of byte[] buffers.
+ * @lucene.internal */
 public class RAMFile {
   protected ArrayList<byte[]> buffers = new ArrayList<byte[]>();
   long length;

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/SimpleFSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/SimpleFSDirectory.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/SimpleFSDirectory.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/store/SimpleFSDirectory.java Sun Aug 19 09:35:25 2012
@@ -85,8 +85,16 @@ public class SimpleFSDirectory extends F
     };
   }
 
+  /**
+   * Reads bytes with {@link RandomAccessFile#seek(long)} followed by
+   * {@link RandomAccessFile#read(byte[], int, int)}.  
+   */
   protected static class SimpleFSIndexInput extends BufferedIndexInput {
   
+    /**
+     * Extension of RandomAccessFile that tracks if the file is 
+     * open.
+     */
     protected static class Descriptor extends RandomAccessFile {
       // remember if the file is open, so that we don't try to close it
       // more than once

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/ByteBlockPool.java Sun Aug 19 09:35:25 2012
@@ -117,10 +117,13 @@ public final class ByteBlockPool {
   public byte[][] buffers = new byte[10][];
 
   int bufferUpto = -1;                        // Which buffer we are upto
-  public int byteUpto = BYTE_BLOCK_SIZE;             // Where we are in head buffer
+  /** Where we are in head buffer */
+  public int byteUpto = BYTE_BLOCK_SIZE;
 
-  public byte[] buffer;                              // Current head buffer
-  public int byteOffset = -BYTE_BLOCK_SIZE;          // Current head offset
+  /** Current head buffer */
+  public byte[] buffer;
+  /** Current head offset */
+  public int byteOffset = -BYTE_BLOCK_SIZE;
 
   private final Allocator allocator;
 

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/FuzzySet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/FuzzySet.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/FuzzySet.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/FuzzySet.java Sun Aug 19 09:35:25 2012
@@ -48,6 +48,11 @@ public class FuzzySet {
   
   public static final int FUZZY_SERIALIZATION_VERSION=1;
   
+  /**
+   * Result from {@link FuzzySet#contains(BytesRef)}:
+   * can never return definitively YES (always MAYBE), 
+   * but can sometimes definitely return NO.
+   */
   public enum ContainsResult {
     MAYBE, NO
   };

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/FST.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/FST.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/FST.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/FST.java Sun Aug 19 09:35:25 2012
@@ -158,7 +158,7 @@ public final class FST<T> {
   private final boolean packed;
   private PackedInts.Reader nodeRefToAddress;
 
-  // If arc has this label then that arc is final/accepted
+  /** If arc has this label then that arc is final/accepted */
   public static final int END_LABEL = -1;
 
   private boolean allowArrayArcs = true;
@@ -174,7 +174,7 @@ public final class FST<T> {
     // building an FST w/ willPackFST=true:
     int node;
 
-    // To node (ord or address):
+    /** To node (ord or address) */
     public int target;
 
     byte flags;
@@ -542,8 +542,8 @@ public final class FST<T> {
     return v;
   }
 
-  // returns true if the node at this address has any
-  // outgoing arcs
+  /** returns true if the node at this address has any
+   *  outgoing arcs */
   public static<T> boolean targetHasArcs(Arc<T> arc) {
     return arc.target > 0;
   }

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/Util.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/Util.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/Util.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/fst/Util.java Sun Aug 19 09:35:25 2012
@@ -767,6 +767,19 @@ public final class Util {
     }
   }
 
+  /** Just maps each UTF16 unit (char) to the ints in an
+   *  IntsRef. */
+  public static IntsRef toUTF16(CharSequence s, IntsRef scratch) {
+    final int charLimit = s.length();
+    scratch.offset = 0;
+    scratch.length = charLimit;
+    scratch.grow(charLimit);
+    for (int idx = 0; idx < charLimit; idx++) {
+      scratch.ints[idx] = (int) s.charAt(idx);
+    }
+    return scratch;
+  }    
+
   /** Decodes the Unicode codepoints from the provided
    *  CharSequence and places them in the provided scratch
    *  IntsRef, which must not be null, returning it. */

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/packed/PackedInts.java Sun Aug 19 09:35:25 2012
@@ -572,7 +572,7 @@ public class PackedInts {
         }
         return new Packed64(in, valueCount, bitsPerValue);
       default:
-        throw new AssertionError("Unknwown Writer format: " + format);
+        throw new AssertionError("Unknown Writer format: " + format);
     }
   }
 

Modified: lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestSimilarityProvider.java Sun Aug 19 09:35:25 2012
@@ -20,12 +20,13 @@ package org.apache.lucene.search;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
+import org.apache.lucene.index.AtomicReader;
+import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.FieldInvertState;
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.MultiDocValues;
 import org.apache.lucene.index.Norm;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.SlowCompositeReaderWrapper;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper;
 import org.apache.lucene.search.similarities.Similarity;
@@ -36,7 +37,7 @@ import org.apache.lucene.util.LuceneTest
 
 public class TestSimilarityProvider extends LuceneTestCase {
   private Directory directory;
-  private IndexReader reader;
+  private DirectoryReader reader;
   private IndexSearcher searcher;
   
   @Override
@@ -75,8 +76,9 @@ public class TestSimilarityProvider exte
   public void testBasics() throws Exception {
     // sanity check of norms writer
     // TODO: generalize
-    byte fooNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "foo").getSource().getArray();
-    byte barNorms[] = (byte[]) MultiDocValues.getNormDocValues(reader, "bar").getSource().getArray();
+    AtomicReader slow = new SlowCompositeReaderWrapper(reader);
+    byte fooNorms[] = (byte[]) slow.normValues("foo").getSource().getArray();
+    byte barNorms[] = (byte[]) slow.normValues("bar").getSource().getArray();
     for (int i = 0; i < fooNorms.length; i++) {
       assertFalse(fooNorms[i] == barNorms[i]);
     }

Modified: lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestFailIfDirectoryNotClosed.java Sun Aug 19 09:35:25 2012
@@ -17,13 +17,7 @@ package org.apache.lucene.util.junitcomp
  * limitations under the License.
  */
 
-import java.io.IOException;
-
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockDirectoryWrapper;
-import org.apache.lucene.store.SingleInstanceLockFactory;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.JUnitCore;
@@ -40,39 +34,10 @@ public class TestFailIfDirectoryNotClose
       System.out.println(dir.toString());
     }
   }
-  
-  public static class Nested2 extends WithNestedTests.AbstractNestedTest {
-    public void testDummy() throws IOException {
-      MockDirectoryWrapper dir = newMockDirectory();
-      IndexWriter iw = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
-      dir.close();
-    }
-  }
-  
-  public static class Nested3 extends WithNestedTests.AbstractNestedTest {
-    public void testDummy() throws IOException {
-      MockDirectoryWrapper dir = newMockDirectory();
-      dir.setLockFactory(new SingleInstanceLockFactory());
-      IndexWriter iw = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
-      dir.close();
-    }
-  }
 
   @Test
   public void testFailIfDirectoryNotClosed() {
     Result r = JUnitCore.runClasses(Nested1.class);
     Assert.assertEquals(1, r.getFailureCount());
   }
-  
-  @Test
-  public void testFailIfIndexWriterNotClosed() {
-    Result r = JUnitCore.runClasses(Nested2.class);
-    Assert.assertEquals(1, r.getFailureCount());
-  }
-  
-  @Test
-  public void testFailIfIndexWriterNotClosedChangeLockFactory() {
-    Result r = JUnitCore.runClasses(Nested3.class);
-    Assert.assertEquals(1, r.getFailureCount());
-  }
 }

Modified: lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java (original)
+++ lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/AbstractDistinctValuesCollector.java Sun Aug 19 09:35:25 2012
@@ -44,6 +44,10 @@ public abstract class AbstractDistinctVa
   public void setScorer(Scorer scorer) throws IOException {
   }
 
+  /**
+   * Returned by {@link AbstractDistinctValuesCollector#getGroups()},
+   * representing the value and set of distinct values for the group.
+   */
   public abstract static class GroupCount<GROUP_VALUE_TYPE> {
 
     public final GROUP_VALUE_TYPE groupValue;

Modified: lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java (original)
+++ lucene/dev/branches/lucene3312/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java Sun Aug 19 09:35:25 2012
@@ -17,7 +17,12 @@
 
 package org.apache.lucene.search.grouping;
 
-/** @lucene.internal */
+import org.apache.lucene.search.FieldComparator; // javadocs
+
+/** 
+ * Expert: representation of a group in {@link AbstractFirstPassGroupingCollector},
+ * tracking the top doc and {@link FieldComparator} slot.
+ * @lucene.internal */
 public class CollectedSearchGroup<T> extends SearchGroup<T> {
   int topDoc;
   int comparatorSlot;

Modified: lucene/dev/branches/lucene3312/lucene/module-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/module-build.xml?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/module-build.xml (original)
+++ lucene/dev/branches/lucene3312/lucene/module-build.xml Sun Aug 19 09:35:25 2012
@@ -90,6 +90,28 @@
     </sequential>
   </macrodef>
 
+  <property name="test-framework.jar" value="${common.dir}/build/test-framework/lucene-test-framework-${version}.jar"/>
+  <target name="check-test-framework-uptodate" unless="test-framework.uptodate">
+    <module-uptodate name="test-framework" jarfile="${test-framework.jar}" property="test-framework.uptodate"/>
+  </target>
+  <target name="jar-test-framework" unless="test-framework.uptodate" depends="check-test-framework-uptodate">
+    <ant dir="${common.dir}/test-framework" target="jar-core" inheritall="false">
+      <propertyset refid="uptodate.and.compiled.properties"/>
+    </ant>
+    <property name="test-framework.uptodate" value="true"/>
+  </target>
+
+  <property name="test-framework-javadoc.jar" value="${common.dir}/build/test-framework/lucene-test-framework-${version}-javadoc.jar"/>
+  <target name="check-test-framework-javadocs-uptodate" unless="test-framework-javadocs.uptodate">
+    <module-uptodate name="test-framework" jarfile="${test-framework-javadoc.jar}" property="test-framework-javadocs.uptodate"/>
+  </target>
+  <target name="javadocs-test-framework" unless="test-framework-javadocs.uptodate" depends="check-test-framework-javadocs-uptodate">
+    <ant dir="${common.dir}/test-framework" target="javadocs" inheritAll="false">
+      <propertyset refid="uptodate.and.compiled.properties"/>
+    </ant>
+    <property name="test-framework-javadocs.uptodate" value="true"/>
+  </target>
+
   <property name="queryparser.jar" value="${common.dir}/build/queryparser/lucene-queryparser-${version}.jar"/>
   <target name="check-queryparser-uptodate" unless="queryparser.uptodate">
     <module-uptodate name="queryparser" jarfile="${queryparser.jar}" property="queryparser.uptodate"/>

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleConstValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleConstValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleConstValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/DoubleConstValueSource.java Sun Aug 19 09:35:25 2012
@@ -24,6 +24,9 @@ import org.apache.lucene.queries.functio
 import java.io.IOException;
 import java.util.Map;
 
+/**
+ * Function that returns a constant double value for every document.
+ */
 public class DoubleConstValueSource extends ConstNumberSource {
   final double constant;
   private final float fv;

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IDFValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IDFValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IDFValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IDFValueSource.java Sun Aug 19 09:35:25 2012
@@ -28,7 +28,13 @@ import org.apache.lucene.util.BytesRef;
 import java.io.IOException;
 import java.util.Map;
 
-/** @lucene.internal */
+/** 
+ * Function that returns {@link TFIDFSimilarity #idf(long, long)}
+ * for every document.
+ * <p>
+ * Note that the configured Similarity for the field must be
+ * a subclass of {@link TFIDFSimilarity}
+ * @lucene.internal */
 public class IDFValueSource extends DocFreqValueSource {
   public IDFValueSource(String field, String val, String indexedField, BytesRef indexedBytes) {
     super(field, val, indexedField, indexedBytes);

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IfFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IfFunction.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IfFunction.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/IfFunction.java Sun Aug 19 09:35:25 2012
@@ -30,6 +30,10 @@ import java.util.List;
 import java.util.Map;
 
 
+/**
+ * Depending on the boolean value of the <code>ifSource</code> function,
+ * returns the value of the <code>trueSource</code> or <code>falseSource</code> function.
+ */
 public class IfFunction extends BoolFunction {
   private final ValueSource ifSource;
   private final ValueSource trueSource;

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxDocValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxDocValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxDocValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/MaxDocValueSource.java Sun Aug 19 09:35:25 2012
@@ -17,6 +17,7 @@
 package org.apache.lucene.queries.function.valuesource;
 
 import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader; // javadocs
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.search.IndexSearcher;
@@ -24,6 +25,11 @@ import org.apache.lucene.search.IndexSea
 import java.io.IOException;
 import java.util.Map;
 
+/**
+ * Returns the value of {@link IndexReader#maxDoc()}
+ * for every document. This is the number of documents
+ * including deletions.
+ */
 public class MaxDocValueSource extends ValueSource {
   public String name() {
     return "maxdoc";

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/NormValueSource.java Sun Aug 19 09:35:25 2012
@@ -28,6 +28,13 @@ import org.apache.lucene.search.similari
 import java.io.IOException;
 import java.util.Map;
 
+/** 
+ * Function that returns {@link TFIDFSimilarity#decodeNormValue(byte)}
+ * for every document.
+ * <p>
+ * Note that the configured Similarity for the field must be
+ * a subclass of {@link TFIDFSimilarity}
+ * @lucene.internal */
 public class NormValueSource extends ValueSource {
   protected final String field;
   public NormValueSource(String field) {

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/SumTotalTermFreqValueSource.java Sun Aug 19 09:35:25 2012
@@ -30,7 +30,10 @@ import java.io.IOException;
 import java.util.Map;
 
 /**
- * <code>TotalTermFreqValueSource</code> returns the total term freq (sum of term freqs across all docuyments).
+ * <code>SumTotalTermFreqValueSource</code> returns the number of tokens.
+ * (sum of term freqs across all documents, across all terms).
+ * Returns -1 if frequencies were omitted for the field, or if 
+ * the codec doesn't support this statistic.
  * @lucene.internal
  */
 public class SumTotalTermFreqValueSource extends ValueSource {

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TFValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TFValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TFValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TFValueSource.java Sun Aug 19 09:35:25 2012
@@ -28,6 +28,13 @@ import org.apache.lucene.util.BytesRef;
 import java.io.IOException;
 import java.util.Map;
 
+/** 
+ * Function that returns {@link TFIDFSimilarity#tf(int)}
+ * for every document.
+ * <p>
+ * Note that the configured Similarity for the field must be
+ * a subclass of {@link TFIDFSimilarity}
+ * @lucene.internal */
 public class TFValueSource extends TermFreqValueSource {
   public TFValueSource(String field, String val, String indexedField, BytesRef indexedBytes) {
     super(field, val, indexedField, indexedBytes);

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TermFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TermFreqValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TermFreqValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TermFreqValueSource.java Sun Aug 19 09:35:25 2012
@@ -26,6 +26,13 @@ import org.apache.lucene.util.BytesRef;
 import java.io.IOException;
 import java.util.Map;
 
+/**
+ * Function that returns {@link DocsEnum#freq()} for the
+ * supplied term in every document.
+ * <p>
+ * If the term does not exist in the document, returns 0.
+ * If frequencies are omitted, returns 1.
+ */
 public class TermFreqValueSource extends DocFreqValueSource {
   public TermFreqValueSource(String field, String val, String indexedField, BytesRef indexedBytes) {
     super(field, val, indexedField, indexedBytes);

Modified: lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TotalTermFreqValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TotalTermFreqValueSource.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TotalTermFreqValueSource.java (original)
+++ lucene/dev/branches/lucene3312/lucene/queries/src/java/org/apache/lucene/queries/function/valuesource/TotalTermFreqValueSource.java Sun Aug 19 09:35:25 2012
@@ -28,7 +28,10 @@ import java.io.IOException;
 import java.util.Map;
 
 /**
- * <code>TotalTermFreqValueSource</code> returns the total term freq (sum of term freqs across all docuyments).
+ * <code>TotalTermFreqValueSource</code> returns the total term freq 
+ * (sum of term freqs across all documents).
+ * Returns -1 if frequencies were omitted for the field, or if 
+ * the codec doesn't support this statistic.
  * @lucene.internal
  */
 public class TotalTermFreqValueSource extends ValueSource {

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockHoleInjectingTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockHoleInjectingTokenFilter.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockHoleInjectingTokenFilter.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockHoleInjectingTokenFilter.java Sun Aug 19 09:35:25 2012
@@ -29,7 +29,9 @@ import org.apache.lucene.util._TestUtil;
 // a MockRemovesTokensTF, ideally subclassing FilteringTF
 // (in modules/analysis)
 
-// Randomly injects holes:
+/** 
+ * Randomly injects holes (similar to what a stopfilter would do)
+ */
 public final class MockHoleInjectingTokenFilter extends TokenFilter {
 
   private final long randomSeed;

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockPayloadAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockPayloadAnalyzer.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockPayloadAnalyzer.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/MockPayloadAnalyzer.java Sun Aug 19 09:35:25 2012
@@ -27,8 +27,9 @@ import java.io.Reader;
 
 
 /**
- *
- *
+ * Wraps a whitespace tokenizer with a filter that sets
+ * the first token, and odd tokens to posinc=1, and all others
+ * to 0, encoding the position as pos: XXX in the payload.
  **/
 public final class MockPayloadAnalyzer extends Analyzer {
 

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene40ords/Lucene40WithOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene40ords/Lucene40WithOrds.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene40ords/Lucene40WithOrds.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/lucene40ords/Lucene40WithOrds.java Sun Aug 19 09:35:25 2012
@@ -30,6 +30,7 @@ import org.apache.lucene.codecs.Postings
 import org.apache.lucene.codecs.PostingsWriterBase;
 import org.apache.lucene.codecs.TermsIndexReaderBase;
 import org.apache.lucene.codecs.TermsIndexWriterBase;
+import org.apache.lucene.codecs.lucene40.Lucene40Codec; // javadocs
 import org.apache.lucene.codecs.lucene40.Lucene40PostingsReader;
 import org.apache.lucene.codecs.lucene40.Lucene40PostingsWriter;
 import org.apache.lucene.index.SegmentReadState;
@@ -39,6 +40,10 @@ import org.apache.lucene.util.BytesRef;
 // TODO: we could make separate base class that can wrapp
 // any PostingsBaseFormat and make it ord-able...
 
+/**
+ * Customized version of {@link Lucene40Codec} that uses
+ * {@link FixedGapTermsIndexWriter}.
+ */
 public class Lucene40WithOrds extends PostingsFormat {
     
   public Lucene40WithOrds() {

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockFixedIntBlockPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockFixedIntBlockPostingsFormat.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockFixedIntBlockPostingsFormat.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockFixedIntBlockPostingsFormat.java Sun Aug 19 09:35:25 2012
@@ -72,6 +72,9 @@ public class MockFixedIntBlockPostingsFo
     return new MockIntFactory(blockSize);
   }
 
+  /**
+   * Encodes blocks as vInts of a fixed block size.
+   */
   public static class MockIntFactory extends IntStreamFactory {
     private final int blockSize;
 

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockVariableIntBlockPostingsFormat.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockVariableIntBlockPostingsFormat.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockVariableIntBlockPostingsFormat.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mockintblock/MockVariableIntBlockPostingsFormat.java Sun Aug 19 09:35:25 2012
@@ -70,6 +70,10 @@ public class MockVariableIntBlockPosting
     return getName() + "(baseBlockSize="+ baseBlockSize + ")";
   }
 
+  /**
+   * If the first value is <= 3, writes baseBlockSize vInts at once,
+   * otherwise writes 2*baseBlockSize vInts.
+   */
   public static class MockIntFactory extends IntStreamFactory {
 
     private final int baseBlockSize;

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntFactory.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntFactory.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntFactory.java Sun Aug 19 09:35:25 2012
@@ -25,7 +25,10 @@ import org.apache.lucene.codecs.sep.IntS
 
 import java.io.IOException;
 
-/** @lucene.experimental */
+/** 
+ * Encodes ints directly as vInts with {@link MockSingleIntIndexOutput}
+ * @lucene.experimental 
+ */
 public class MockSingleIntFactory extends IntStreamFactory {
   @Override
   public IntIndexInput openInput(Directory dir, String fileName, IOContext context) throws IOException {

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntIndexInput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntIndexInput.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntIndexInput.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/mocksep/MockSingleIntIndexInput.java Sun Aug 19 09:35:25 2012
@@ -28,7 +28,7 @@ import org.apache.lucene.store.IndexInpu
 
 /** Reads IndexInputs written with {@link
  *  MockSingleIntIndexOutput}.  NOTE: this class is just for
- *  demonstration puprposes (it is a very slow way to read a
+ *  demonstration purposes (it is a very slow way to read a
  *  block of ints).
  *
  * @lucene.experimental
@@ -54,6 +54,9 @@ public class MockSingleIntIndexInput ext
     in.close();
   }
 
+  /**
+   * Just reads a vInt directly from the file.
+   */
   public static class Reader extends IntIndexInput.Reader {
     // clone:
     private final IndexInput in;

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/AlcoholicMergePolicy.java Sun Aug 19 09:35:25 2012
@@ -68,7 +68,7 @@ public class AlcoholicMergePolicy extend
     return info.sizeInBytes();
   }
   
-  public static enum Drink {
+  private static enum Drink {
     
     Beer(15), Wine(17), Champagne(21), WhiteRussian(22), SingleMalt(30);
     
@@ -77,11 +77,6 @@ public class AlcoholicMergePolicy extend
     Drink(long drunkFactor) {
       this.drunkFactor = drunkFactor;
     }
-    
-    public long drunk() {
-      return drunkFactor;
-    }
-    
   }
   
 }

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java Sun Aug 19 09:35:25 2012
@@ -20,9 +20,14 @@ package org.apache.lucene.index;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.NoSuchElementException;
 import java.util.Set;
 
+import org.apache.lucene.util.FilterIterator;
+
+/**
+ * A {@link FilterAtomicReader} that exposes only a subset
+ * of fields from the underlying wrapped reader.
+ */
 public final class FieldFilterAtomicReader extends FilterAtomicReader {
   
   private final Set<String> fields;
@@ -58,8 +63,9 @@ public final class FieldFilterAtomicRead
       return null;
     }
     f = new FieldFilterFields(f);
-    // we need to check for emptyness, so we can return null:
-    return (f.iterator().next() == null) ? null : f;
+    // we need to check for emptyness, so we can return
+    // null:
+    return f.iterator().hasNext() ? f : null;
   }
 
   @Override
@@ -134,55 +140,16 @@ public final class FieldFilterAtomicRead
 
     @Override
     public int size() {
-      // TODO: add faster implementation!
-      int c = 0;
-      final Iterator<String> it = iterator();
-      while (it.next() != null) {
-        c++;
-      }
-      return c;
+      // this information is not cheap, return -1 like MultiFields does:
+      return -1;
     }
 
     @Override
     public Iterator<String> iterator() {
-      final Iterator<String> in = super.iterator();
-      return new Iterator<String>() {
-        String cached = null;
-        
-        @Override
-        public String next() {
-          if (cached != null) {
-            String next = cached;
-            cached = null;
-            return next;
-          } else {
-            String next = doNext();
-            if (next == null) {
-              throw new NoSuchElementException();
-            } else {
-              return next;
-            }
-          }
-        }
-
-        @Override
-        public boolean hasNext() {
-          return cached != null || (cached = doNext()) != null;
-        }
-        
-        private String doNext() {
-          while (in.hasNext()) {
-            String field = in.next();
-            if (hasField(field)) {
-              return field;
-            }
-          }
-          return null;
-        }
-
+      return new FilterIterator<String>(super.iterator()) {
         @Override
-        public void remove() {
-          throw new UnsupportedOperationException();
+        protected boolean predicateFunction(String field) {
+          return hasField(field);
         }
       };
     }

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java Sun Aug 19 09:35:25 2012
@@ -42,9 +42,15 @@ import org.apache.lucene.util._TestUtil;
 //   - doc blocks?  so we can test joins/grouping...
 //   - controlled consistency (NRTMgr)
 
+/**
+ * Base test class for simulating distributed search across multiple shards.
+ */
 public abstract class ShardSearchingTestBase extends LuceneTestCase {
 
   // TODO: maybe SLM should throw this instead of returning null...
+  /**
+   * Thrown when the lease for a searcher has expired.
+   */
   public static class SearcherExpiredException extends RuntimeException {
     public SearcherExpiredException(String message) {
       super(message);
@@ -604,6 +610,9 @@ public abstract class ShardSearchingTest
     }
   }
 
+  /**
+   * An IndexSearcher and associated version (lease)
+   */
   protected static class SearcherAndVersion {
     public final IndexSearcher searcher;
     public final long version;

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Sun Aug 19 09:35:25 2012
@@ -146,6 +146,12 @@ public class MockDirectoryWrapper extend
     preventDoubleWrite = value;
   }
   
+  /**
+   * Enum for controlling hard disk throttling.
+   * Set via {@link MockDirectoryWrapper #setThrottling(Throttling)}
+   * <p>
+   * WARNING: can make tests very slow.
+   */
   public static enum Throttling {
     /** always emulate a slow hard disk. could be very slow! */
     ALWAYS,

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java Sun Aug 19 09:35:25 2012
@@ -24,25 +24,30 @@ import java.io.*;
  */
 final class CloseableFile implements Closeable {
   private final File file;
+  private final TestRuleMarkFailure failureMarker;
 
-  public CloseableFile(File file) {
+  public CloseableFile(File file, TestRuleMarkFailure failureMarker) {
     this.file = file;
+    this.failureMarker = failureMarker;
   }
 
   @Override
   public void close() throws IOException {
-    if (file.exists()) {
-      try {
-        _TestUtil.rmDir(file);
-      } catch (IOException e) {
-        // Ignore the exception from rmDir.
-      }
-
-      // Re-check.
+    // only if there were no other test failures.
+    if (failureMarker.wasSuccessful()) {
       if (file.exists()) {
-        throw new IOException(
+        try {
+          _TestUtil.rmDir(file);
+        } catch (IOException e) {
+          // Ignore the exception from rmDir.
+        }
+
+        // Re-check.
+        if (file.exists()) {
+          throw new IOException(
             "Could not remove: " + file.getAbsolutePath());
-      }
+        }
+    }
     }
   }
 }
\ No newline at end of file

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/English.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/English.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/English.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/English.java Sun Aug 19 09:35:25 2012
@@ -18,6 +18,7 @@ package org.apache.lucene.util;
  */
 
 /**
+ * Converts numbers to english strings for testing.
  * @lucene.internal
  */ 
 public final class English {

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/RollingBuffer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/RollingBuffer.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/RollingBuffer.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/RollingBuffer.java Sun Aug 19 09:35:25 2012
@@ -26,6 +26,9 @@ package org.apache.lucene.util;
  *  @lucene.internal */
 public abstract class RollingBuffer<T extends RollingBuffer.Resettable> {
 
+  /**
+   * Implement to reset an instance
+   */
   public static interface Resettable {
     public void reset();
   }

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleFieldCacheSanity.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleFieldCacheSanity.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleFieldCacheSanity.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleFieldCacheSanity.java Sun Aug 19 09:35:25 2012
@@ -1,10 +1,5 @@
 package org.apache.lucene.util;
 
-import org.apache.lucene.search.FieldCache;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -22,6 +17,30 @@ import org.junit.runners.model.Statement
  * limitations under the License.
  */
 
+import org.apache.lucene.search.FieldCache;
+import org.apache.lucene.util.FieldCacheSanityChecker; // javadocs
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * This rule will fail the test if it has insane field caches.
+ * <p>
+ * calling assertSaneFieldCaches here isn't as useful as having test
+ * classes call it directly from the scope where the index readers
+ * are used, because they could be gc'ed just before this tearDown
+ * method is called.
+ * <p>
+ * But it's better then nothing.
+ * <p>
+ * If you are testing functionality that you know for a fact
+ * "violates" FieldCache sanity, then you should either explicitly
+ * call purgeFieldCache at the end of your test method, or refactor
+ * your Test class so that the inconsistent FieldCache usages are
+ * isolated in distinct test methods
+ * 
+ * @see FieldCacheSanityChecker
+ */
 public class TestRuleFieldCacheSanity implements TestRule {
   
   @Override
@@ -33,18 +52,6 @@ public class TestRuleFieldCacheSanity im
 
         Throwable problem = null;
         try {
-          // calling assertSaneFieldCaches here isn't as useful as having test
-          // classes call it directly from the scope where the index readers
-          // are used, because they could be gc'ed just before this tearDown
-          // method is called.
-          //
-          // But it's better then nothing.
-          //
-          // If you are testing functionality that you know for a fact
-          // "violates" FieldCache sanity, then you should either explicitly
-          // call purgeFieldCache at the end of your test method, or refactor
-          // your Test class so that the inconsistent FieldCache usages are
-          // isolated in distinct test methods
           LuceneTestCase.assertSaneFieldCaches(d.getDisplayName());
         } catch (Throwable t) {
           problem = t;

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleStoreClassName.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleStoreClassName.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleStoreClassName.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleStoreClassName.java Sun Aug 19 09:35:25 2012
@@ -21,6 +21,10 @@ import org.junit.rules.TestRule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
+/**
+ * Stores the suite name so you can retrieve it
+ * from {@link #getTestClass()}
+ */
 public class TestRuleStoreClassName implements TestRule {
   private volatile Description description;
 

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java Sun Aug 19 09:35:25 2012
@@ -94,7 +94,7 @@ public class _TestUtil {
     try {
       File f = createTempFile(desc, "tmp", LuceneTestCase.TEMP_DIR);
       f.delete();
-      LuceneTestCase.closeAfterSuite(new CloseableFile(f));
+      LuceneTestCase.closeAfterSuite(new CloseableFile(f, LuceneTestCase.suiteFailureMarker));
       return f;
     } catch (IOException e) {
       throw new RuntimeException(e);
@@ -136,7 +136,7 @@ public class _TestUtil {
     rmDir(destDir);
 
     destDir.mkdir();
-    LuceneTestCase.closeAfterSuite(new CloseableFile(destDir));
+    LuceneTestCase.closeAfterSuite(new CloseableFile(destDir, LuceneTestCase.suiteFailureMarker));
 
     while (entries.hasMoreElements()) {
       ZipEntry entry = entries.nextElement();

Modified: lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/automaton/AutomatonTestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/automaton/AutomatonTestUtil.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/automaton/AutomatonTestUtil.java (original)
+++ lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/automaton/AutomatonTestUtil.java Sun Aug 19 09:35:25 2012
@@ -127,6 +127,13 @@ public class AutomatonTestUtil {
     return code;
   }
 
+  /**
+   * Lets you retrieve random strings accepted
+   * by an Automaton.
+   * <p>
+   * Once created, call {@link #getRandomAcceptedString(Random)}
+   * to get a new string (in UTF-32 codepoints).
+   */
   public static class RandomAcceptedStrings {
 
     private final Map<Transition,Boolean> leadsToAccept;

Modified: lucene/dev/branches/lucene3312/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/CHANGES.txt?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/solr/CHANGES.txt Sun Aug 19 09:35:25 2012
@@ -26,6 +26,14 @@ $Id$
 
 ==================  4.0.0 ==================
 
+Versions of Major Components
+---------------------
+Apache Tika 1.2
+Carrot2 3.5.0
+Velocity 1.6.4 and Velocity Tools 2.0
+Apache UIMA 2.3.1
+Apache ZooKeeper 3.3.6
+
 Upgrading from Solr 4.0.0-BETA
 ----------------------
 
@@ -63,6 +71,27 @@ Bug Fixes
 * SOLR-3649: Fixed bug in JavabinLoader that caused deleteById(List<String> ids)
   to not work in SolrJ (siren)
 
+* SOLR-3730: Rollback is not implemented quite right and can cause corner case fails in 
+  SolrCloud tests. (rmuir, Mark Miller)
+
+* SOLR-2981: Fixed StatsComponent to no longer return duplicated information 
+  when requesting multiple stats.facet fields.
+  (Roman Kliewer via hossman)
+
+Other Changes
+----------------------
+
+* SOLR-3690: Fixed binary release packages to include dependencie needed for 
+  the solr-test-framework (hossman)
+
+* SOLR-2857: The /update/json and /update/csv URLs were restored to aid
+  in the migration of existing clients.  (yonik)
+
+* SOLR-3691: SimplePostTool: Mode for crawling/posting web pages
+  See http://wiki.apache.org/solr/ExtractingRequestHandler for examples (janhoy)
+
+* SOLR-3707: Upgrade Solr to Tika 1.2 (janhoy)
+
 ==================  4.0.0-BETA ===================
 
 
@@ -271,7 +300,6 @@ Other Changes
   Also, the configuration itself can be passed using the "dataConfig" parameter rather than
   using a file (this previously worked in debug mode only).  When configuration errors are 
   encountered, the error message is returned in XML format.  (James Dyer)
-  
 * SOLR-3439: Make SolrCell easier to use out of the box. Also improves "/browse" to display
   rich-text documents correctly, along with facets for author and content_type.  
   With the new "content" field, highlighting of body is supported. See also SOLR-3672 for

Modified: lucene/dev/branches/lucene3312/solr/NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/NOTICE.txt?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/NOTICE.txt (original)
+++ lucene/dev/branches/lucene3312/solr/NOTICE.txt Sun Aug 19 09:35:25 2012
@@ -310,12 +310,11 @@ Copyright 2004 Sun Microsystems, Inc. (R
 
 Copyright 2002-2008 by John Cowan (TagSoup -- http://ccil.org/~cowan/XML/tagsoup/)
 
-Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved.
-(Javassist, MPL licensed: http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/)
-
 Copyright (C) 1994-2007 by the Xiph.org Foundation, http://www.xiph.org/ (OggVorbis)
 
-Scannotation (C) Bill Burke
+Copyright 2012 Kohei Taketa juniversalchardet (http://code.google.com/p/juniversalchardet/)
+
+Lasse Collin and others, XZ for Java (http://tukaani.org/xz/java.html)
 
 =========================================================================
 ==  Language Detection Notices                                         ==

Modified: lucene/dev/branches/lucene3312/solr/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/build.xml?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/build.xml Sun Aug 19 09:35:25 2012
@@ -386,8 +386,9 @@
       <tarfileset dir="."
                   prefix="${fullnamever}"
                   includes="LICENSE.txt NOTICE.txt CHANGES.txt README.txt example/**
-                             client/README.txt client/ruby/solr-ruby/** contrib/**/lib/**
-                             contrib/**/README.txt licenses/**"
+                            client/README.txt client/ruby/solr-ruby/** 
+                            contrib/**/lib/** contrib/**/README.txt 
+                            licenses/**"
                   excludes="lib/README.committers.txt **/data/ **/logs/* 
                             **/classes/ **/*.sh **/ivy.xml **/build.xml
                             **/bin/ **/*.iml **/*.ipr **/*.iws **/pom.xml 
@@ -401,7 +402,9 @@
                   includes="example/**/*.sh example/**/bin/" />
       <tarfileset dir="."
                   prefix="${fullnamever}"
-                  includes="dist/*.jar dist/*.war dist/solrj-lib/*"
+                  includes="dist/*.jar dist/*.war 
+                            dist/solrj-lib/*
+                            dist/test-framework/**"
                   excludes="**/*.tgz **/*.zip **/*.md5 **/*src*.jar **/*docs*.jar **/*.sha1" />
       <tarfileset dir="${dest}/docs"
                   prefix="${fullnamever}/docs" />

Modified: lucene/dev/branches/lucene3312/solr/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/common-build.xml?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/common-build.xml (original)
+++ lucene/dev/branches/lucene3312/solr/common-build.xml Sun Aug 19 09:35:25 2012
@@ -193,7 +193,7 @@
   <property name="lucenedocs" location="${common.dir}/build/docs"/>
 
   <!-- dependency to ensure all lucene javadocs are present -->
-  <target name="lucene-javadocs" depends="javadocs-lucene-core,javadocs-analyzers-common,javadocs-analyzers-icu,javadocs-analyzers-kuromoji,javadocs-analyzers-phonetic,javadocs-analyzers-smartcn,javadocs-analyzers-morfologik,javadocs-analyzers-stempel,javadocs-analyzers-uima,javadocs-suggest,javadocs-grouping,javadocs-queries,javadocs-queryparser,javadocs-highlighter,javadocs-memory,javadocs-misc,javadocs-spatial"/>
+  <target name="lucene-javadocs" depends="javadocs-lucene-core,javadocs-analyzers-common,javadocs-analyzers-icu,javadocs-analyzers-kuromoji,javadocs-analyzers-phonetic,javadocs-analyzers-smartcn,javadocs-analyzers-morfologik,javadocs-analyzers-stempel,javadocs-analyzers-uima,javadocs-suggest,javadocs-grouping,javadocs-queries,javadocs-queryparser,javadocs-highlighter,javadocs-memory,javadocs-misc,javadocs-spatial,javadocs-test-framework"/>
 
   <!-- create javadocs for the current module -->
   <target name="javadocs" depends="compile-core,define-lucene-javadoc-url,lucene-javadocs">

Modified: lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/extraction/ivy.xml Sun Aug 19 09:35:25 2012
@@ -20,36 +20,36 @@
     <info organisation="org.apache.solr" module="extraction"/>
     <dependencies>
       <!-- Tika JARs -->
-      <dependency org="org.apache.tika" name="tika-core" rev="1.1" transitive="false"/>
-      <dependency org="org.apache.tika" name="tika-parsers" rev="1.1" transitive="false"/>
-      <!-- Tika dependencies - see http://tika.apache.org/1.1/gettingstarted.html#Using_Tika_as_a_Maven_dependency -->
+      <dependency org="org.apache.tika" name="tika-core" rev="1.2" transitive="false"/>
+      <dependency org="org.apache.tika" name="tika-parsers" rev="1.2" transitive="false"/>
+      <!-- Tika dependencies - see http://tika.apache.org/1.2/gettingstarted.html#Using_Tika_as_a_Maven_dependency -->
       <!-- When upgrading Tika, upgrade dependencies versions and add any new ones
            (except slf4j-api, commons-codec, commons-logging, geronimo-stax-api_1.0_spec) -->
       <dependency org="org.gagravarr" name="vorbis-java-tika" rev="0.1" transitive="false"/>
       <dependency org="org.gagravarr" name="vorbis-java-core" rev="0.1" transitive="false"/>
       <dependency org="edu.ucar" name="netcdf" rev="4.2-min" transitive="false"/>
-      <dependency org="org.apache.james" name="apache-mime4j-core" rev="0.7" transitive="false"/>
-      <dependency org="org.apache.james" name="apache-mime4j-dom" rev="0.7" transitive="false"/>
-      <dependency org="org.apache.commons" name="commons-compress" rev="1.3" transitive="false"/>
-      <dependency org="org.apache.pdfbox" name="pdfbox" rev="1.6.0" transitive="false"/>
-      <dependency org="org.apache.pdfbox" name="fontbox" rev="1.6.0" transitive="false"/>
-      <dependency org="org.apache.pdfbox" name="jempbox" rev="1.6.0" transitive="false"/>
+      <dependency org="org.apache.james" name="apache-mime4j-core" rev="0.7.2" transitive="false"/>
+      <dependency org="org.apache.james" name="apache-mime4j-dom" rev="0.7.2" transitive="false"/>
+      <dependency org="org.apache.commons" name="commons-compress" rev="1.4.1" transitive="false"/>
+      <dependency org="org.apache.pdfbox" name="pdfbox" rev="1.7.0" transitive="false"/>
+      <dependency org="org.apache.pdfbox" name="fontbox" rev="1.7.0" transitive="false"/>
+      <dependency org="org.apache.pdfbox" name="jempbox" rev="1.7.0" transitive="false"/>
       <dependency org="org.bouncycastle" name="bcmail-jdk15" rev="1.45" transitive="false"/>
       <dependency org="org.bouncycastle" name="bcprov-jdk15" rev="1.45" transitive="false"/>
-      <dependency org="org.apache.poi" name="poi" rev="3.8-beta5" transitive="false"/>
-      <dependency org="org.apache.poi" name="poi-scratchpad" rev="3.8-beta5" transitive="false"/>
-      <dependency org="org.apache.poi" name="poi-ooxml" rev="3.8-beta5" transitive="false"/>
-      <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="3.8-beta5" transitive="false"/>
+      <dependency org="org.apache.poi" name="poi" rev="3.8" transitive="false"/>
+      <dependency org="org.apache.poi" name="poi-scratchpad" rev="3.8" transitive="false"/>
+      <dependency org="org.apache.poi" name="poi-ooxml" rev="3.8" transitive="false"/>
+      <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="3.8" transitive="false"/>
       <dependency org="org.apache.xmlbeans" name="xmlbeans" rev="2.3.0" transitive="false"/>
       <dependency org="dom4j" name="dom4j" rev="1.6.1" transitive="false"/>
       <dependency org="org.ccil.cowan.tagsoup" name="tagsoup" rev="1.2.1" transitive="false"/>
-      <dependency org="com.googlecode.mp4parser" name="isoparser" rev="1.0-beta-5" transitive="false"/>
-      <dependency org="net.sf.scannotation" name="scannotation" rev="1.0.2" transitive="false"/>
-      <dependency org="javassist" name="javassist" rev="3.6.0.GA" transitive="false"/>
+      <dependency org="com.googlecode.mp4parser" name="isoparser" rev="1.0-RC-1" transitive="false"/>
       <dependency org="com.drewnoakes" name="metadata-extractor" rev="2.4.0-beta-1" transitive="false"/>
       <dependency org="de.l3s.boilerpipe" name="boilerpipe" rev="1.1.0" transitive="false"/>
       <dependency org="rome" name="rome" rev="0.9" transitive="false"/>
       <dependency org="jdom" name="jdom" rev="1.0" transitive="false"/>
+      <dependency org="com.googlecode.juniversalchardet" name="juniversalchardet" rev="1.0.3" transitive="false"/>
+      <dependency org="org.tukaani" name="xz" rev="1.0" transitive="false"/>
       <!-- Other ExtracingRequestHandler dependencies -->
       <dependency org="com.ibm.icu" name="icu4j" rev="49.1" transitive="false"/>
       <dependency org="xerces" name="xercesImpl" rev="2.9.1" transitive="false"/>

Modified: lucene/dev/branches/lucene3312/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java (original)
+++ lucene/dev/branches/lucene3312/solr/contrib/extraction/src/test/org/apache/solr/handler/extraction/ExtractingRequestHandlerTest.java Sun Aug 19 09:35:25 2012
@@ -64,8 +64,7 @@ public class ExtractingRequestHandlerTes
             "fmap.producer", "extractedProducer",
             "fmap.creator", "extractedCreator", "fmap.Keywords", "extractedKeywords",
             "fmap.Creation-Date", "extractedDate",
-            "fmap.AAPL:Keywords", "ignored_a",
-            "fmap.xmpTPg:NPages", "ignored_a",
+            "uprefix", "ignored_",
             "fmap.Author", "extractedAuthor",
             "fmap.content", "extractedContent",
            "literal.id", "one",
@@ -81,6 +80,7 @@ public class ExtractingRequestHandlerTes
             "fmap.Author", "extractedAuthor",
             "fmap.language", "extractedLanguage",
             "literal.id", "two",
+            "uprefix", "ignored_",
             "fmap.content", "extractedContent",
             "fmap.Last-Modified", "extractedDate"
     );
@@ -136,6 +136,7 @@ public class ExtractingRequestHandlerTes
             "fmap.creator", "extractedCreator", "fmap.Keywords", "extractedKeywords",
             "fmap.Author", "extractedAuthor",
             "literal.id", "three",
+            "uprefix", "ignored_",
             "fmap.content", "extractedContent",
             "fmap.language", "extractedLanguage",
             "fmap.Last-Modified", "extractedDate"
@@ -206,6 +207,7 @@ public class ExtractingRequestHandlerTes
             "fmap.Author", "extractedAuthor",
             "fmap.content", "extractedContent",
             "literal.id", "one",
+            "uprefix", "ignored_",
             "fmap.language", "extractedLanguage",
             "literal.extractionLiteralMV", "one",
             "literal.extractionLiteralMV", "two",
@@ -374,9 +376,8 @@ public class ExtractingRequestHandlerTes
     loadLocal("extraction/arabic.pdf", "fmap.created", "extractedDate", "fmap.producer", "extractedProducer",
         "fmap.creator", "extractedCreator", "fmap.Keywords", "extractedKeywords",
         "fmap.Creation-Date", "extractedDate",
-        "fmap.AAPL:Keywords", "ignored_a",
-        "fmap.xmpTPg:NPages", "ignored_a",
         "fmap.Author", "extractedAuthor",
+        "uprefix", "ignored_",
         "fmap.content", "wdf_nocase",
        "literal.id", "one",
         "fmap.Last-Modified", "extractedDate");
@@ -404,8 +405,7 @@ public class ExtractingRequestHandlerTes
       loadLocal("extraction/password-is-solrcell.docx", "fmap.created", "extractedDate", "fmap.producer", "extractedProducer",
           "fmap.creator", "extractedCreator", "fmap.Keywords", "extractedKeywords",
           "fmap.Creation-Date", "extractedDate",
-          "fmap.AAPL:Keywords", "ignored_a",
-          "fmap.xmpTPg:NPages", "ignored_a",
+          "uprefix", "ignored_",
           "fmap.Author", "extractedAuthor",
           "fmap.content", "wdf_nocase",
           "literal.id", "one",
@@ -462,8 +462,7 @@ public class ExtractingRequestHandlerTes
             "fmap.content", "extractedContent",
             "fmap.language", "extractedLanguage",
             "fmap.Creation-Date", "extractedDate",
-            "fmap.AAPL:Keywords", "ignored_a",
-            "fmap.xmpTPg:NPages", "ignored_a",
+            "uprefix", "ignored_",
             "fmap.Last-Modified", "extractedDate");
 
     // Here the literal value should override the Tika-parsed title:
@@ -478,8 +477,7 @@ public class ExtractingRequestHandlerTes
             "fmap.content", "extractedContent",
             "fmap.language", "extractedLanguage",
             "fmap.Creation-Date", "extractedDate",
-            "fmap.AAPL:Keywords", "ignored_a",
-            "fmap.xmpTPg:NPages", "ignored_a",
+            "uprefix", "ignored_",
             "fmap.Last-Modified", "extractedDate");
 
     // Here we mimic the old behaviour where literals are added, not overridden
@@ -498,8 +496,7 @@ public class ExtractingRequestHandlerTes
             "fmap.content", "extractedContent",
             "fmap.language", "extractedLanguage",
             "fmap.Creation-Date", "extractedDate",
-            "fmap.AAPL:Keywords", "ignored_a",
-            "fmap.xmpTPg:NPages", "ignored_a",
+            "uprefix", "ignored_",
             "fmap.Last-Modified", "extractedDate");
 
     assertU(commit());

Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/CachingDirectoryFactory.java Sun Aug 19 09:35:25 2012
@@ -125,6 +125,7 @@ public abstract class CachingDirectoryFa
       }
       cacheValue.refCnt--;
       if (cacheValue.refCnt == 0 && cacheValue.doneWithDir) {
+        log.info("Closing directory:" + cacheValue.path);
         directory.close();
         byDirectoryCache.remove(directory);
         byPathCache.remove(cacheValue.path);
@@ -194,6 +195,7 @@ public abstract class CachingDirectoryFa
         
         byDirectoryCache.put(directory, newCacheValue);
         byPathCache.put(fullPath, newCacheValue);
+        log.info("return new directory for " + fullPath + " forceNew:" + forceNew);
       } else {
         cacheValue.refCnt++;
       }

Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrCore.java Sun Aug 19 09:35:25 2012
@@ -1554,7 +1554,7 @@ public final class SolrCore implements S
         } catch (Throwable e) {
           // do not allow decref() operations to fail since they are typically called in finally blocks
           // and throwing another exception would be very unexpected.
-          SolrException.log(log, "Error closing searcher:", e);
+          SolrException.log(log, "Error closing searcher:" + this, e);
         }
       }
     };

Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/CSVRequestHandler.java Sun Aug 19 09:35:25 2012
@@ -29,7 +29,7 @@ public class CSVRequestHandler extends U
   public void init(NamedList args) {
     super.init(args);
     setAssumeContentType("application/csv");
-    log.warn("Using deprecated class: "+this.getClass().getSimpleName()+" -- replace with UpdateRequestHandler");
+    // log.warn("Using deprecated class: "+this.getClass().getSimpleName()+" -- replace with UpdateRequestHandler");
   }
 
   //////////////////////// SolrInfoMBeans methods //////////////////////

Modified: lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java?rev=1374718&r1=1374717&r2=1374718&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java (original)
+++ lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/JsonUpdateRequestHandler.java Sun Aug 19 09:35:25 2012
@@ -29,7 +29,7 @@ public class JsonUpdateRequestHandler ex
   public void init(NamedList args) {
     super.init(args);
     setAssumeContentType("application/json");
-    log.warn("Using deprecated class: "+this.getClass().getSimpleName()+" -- replace with UpdateRequestHandler");
+    // log.warn("Using deprecated class: "+this.getClass().getSimpleName()+" -- replace with UpdateRequestHandler");
   }
 
   //////////////////////// SolrInfoMBeans methods //////////////////////