You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rj...@apache.org on 2015/03/31 07:22:50 UTC

svn commit: r1670257 [13/39] - in /lucene/dev/branches/lucene6271: ./ dev-tools/ dev-tools/idea/.idea/libraries/ dev-tools/scripts/ lucene/ lucene/analysis/ lucene/analysis/common/ lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneou...

Modified: lucene/dev/branches/lucene6271/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/lucene6271/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Tue Mar 31 05:22:40 2015
@@ -19,6 +19,7 @@ package org.apache.lucene.index.memory;
 
 import java.io.IOException;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.Map;
@@ -443,7 +444,7 @@ public class MemoryIndex {
         fieldInfo = new FieldInfo(fieldName, fields.size(), false, false, this.storePayloads,
             this.storeOffsets
                 ? IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS : IndexOptions.DOCS_AND_FREQS_AND_POSITIONS,
-            DocValuesType.NONE, -1, null);
+            DocValuesType.NONE, -1, Collections.emptyMap());
         sliceArray = new SliceByteStartArray(BytesRefHash.DEFAULT_CAPACITY);
         terms = new BytesRefHash(byteBlockPool, BytesRefHash.DEFAULT_CAPACITY, sliceArray);
       }

Modified: lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/IndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/IndexSplitter.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/IndexSplitter.java (original)
+++ lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/IndexSplitter.java Tue Mar 31 05:22:40 2015
@@ -29,7 +29,6 @@ import java.util.List;
 import java.util.Locale;
 
 import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.util.StringHelper;
 
 /**
  * Command-line tool that enables listing segments in an
@@ -137,7 +136,7 @@ public class IndexSplitter {
       SegmentCommitInfo infoPerCommit = getInfo(n);
       SegmentInfo info = infoPerCommit.info;
       // Same info just changing the dir:
-      SegmentInfo newInfo = new SegmentInfo(destFSDir, info.getVersion(), info.name, info.getDocCount(), 
+      SegmentInfo newInfo = new SegmentInfo(destFSDir, info.getVersion(), info.name, info.maxDoc(),
                                             info.getUseCompoundFile(), info.getCodec(), info.getDiagnostics(), info.getId(), new HashMap<>());
       destInfos.add(new SegmentCommitInfo(newInfo, infoPerCommit.getDelCount(),
           infoPerCommit.getDelGen(), infoPerCommit.getFieldInfosGen(),

Modified: lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java (original)
+++ lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/index/PKIndexSplitter.java Tue Mar 31 05:22:40 2015
@@ -24,7 +24,8 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.search.DocIdSet;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.Filter;
-import org.apache.lucene.search.TermRangeFilter;
+import org.apache.lucene.search.QueryWrapperFilter;
+import org.apache.lucene.search.TermRangeQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BitSetIterator;
 import org.apache.lucene.util.Bits;
@@ -72,13 +73,13 @@ public class PKIndexSplitter {
    */
   public PKIndexSplitter(Directory input, Directory dir1, Directory dir2, Term midTerm) {
     this(input, dir1, dir2,
-      new TermRangeFilter(midTerm.field(), null, midTerm.bytes(), true, false));
+      new QueryWrapperFilter(new TermRangeQuery(midTerm.field(), null, midTerm.bytes(), true, false)));
   }
   
   public PKIndexSplitter(Directory input, Directory dir1, 
       Directory dir2, Term midTerm, IndexWriterConfig config1, IndexWriterConfig config2) {
     this(input, dir1, dir2,
-      new TermRangeFilter(midTerm.field(), null, midTerm.bytes(), true, false), config1, config2);
+        new QueryWrapperFilter(new TermRangeQuery(midTerm.field(), null, midTerm.bytes(), true, false)), config1, config2);
   }
   
   public void split() throws IOException {

Modified: lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/uninverting/UninvertingReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/uninverting/UninvertingReader.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/uninverting/UninvertingReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/misc/src/java/org/apache/lucene/uninverting/UninvertingReader.java Tue Mar 31 05:22:40 2015
@@ -19,6 +19,7 @@ package org.apache.lucene.uninverting;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Map;
 
 import org.apache.lucene.document.BinaryDocValuesField; // javadocs
@@ -146,14 +147,14 @@ public class UninvertingReader extends F
    * can be used normally (e.g. passed to {@link DirectoryReader#openIfChanged(DirectoryReader)})
    * and so on. 
    */
-  public static DirectoryReader wrap(DirectoryReader in, final Map<String,Type> mapping) {
+  public static DirectoryReader wrap(DirectoryReader in, final Map<String,Type> mapping) throws IOException {
     return new UninvertingDirectoryReader(in, mapping);
   }
   
   static class UninvertingDirectoryReader extends FilterDirectoryReader {
     final Map<String,Type> mapping;
     
-    public UninvertingDirectoryReader(DirectoryReader in, final Map<String,Type> mapping) {
+    public UninvertingDirectoryReader(DirectoryReader in, final Map<String,Type> mapping) throws IOException {
       super(in, new FilterDirectoryReader.SubReaderWrapper() {
         @Override
         public LeafReader wrap(LeafReader reader) {
@@ -164,7 +165,7 @@ public class UninvertingReader extends F
     }
 
     @Override
-    protected DirectoryReader doWrapDirectoryReader(DirectoryReader in) {
+    protected DirectoryReader doWrapDirectoryReader(DirectoryReader in) throws IOException {
       return new UninvertingDirectoryReader(in, mapping);
     }
   }
@@ -215,7 +216,7 @@ public class UninvertingReader extends F
         }
       }
       filteredInfos.add(new FieldInfo(fi.name, fi.number, fi.hasVectors(), fi.omitsNorms(),
-                                      fi.hasPayloads(), fi.getIndexOptions(), type, -1, null));
+                                      fi.hasPayloads(), fi.getIndexOptions(), type, -1, Collections.emptyMap()));
     }
     fieldInfos = new FieldInfos(filteredInfos.toArray(new FieldInfo[filteredInfos.size()]));
   }

Modified: lucene/dev/branches/lucene6271/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java (original)
+++ lucene/dev/branches/lucene6271/lucene/misc/src/test/org/apache/lucene/index/TestBlockJoinSorter.java Tue Mar 31 05:22:40 2015
@@ -17,9 +17,14 @@ package org.apache.lucene.index;
  * limitations under the License.
  */
 
+import static org.apache.lucene.search.DocIdSet.EMPTY;
+
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -32,37 +37,60 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.index.NumericDocValues;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.index.Term;
+import org.apache.lucene.search.BitsFilteredDocIdSet;
 import org.apache.lucene.search.BlockJoinComparatorSource;
-import org.apache.lucene.search.CachingWrapperFilter;
 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.QueryWrapperFilter;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.BitDocIdSet;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.SparseFixedBitSet;
 
 public class TestBlockJoinSorter extends LuceneTestCase {
 
-  private static class FixedBitSetCachingWrapperFilter extends CachingWrapperFilter {
+  private static class BitSetCachingWrapperFilter extends Filter {
+
+    private final Filter filter;
+    private final Map<Object,BitDocIdSet> cache = Collections.synchronizedMap(new WeakHashMap<Object,BitDocIdSet>());
 
-    public FixedBitSetCachingWrapperFilter(Filter filter) {
-      super(filter, FilterCachingPolicy.ALWAYS_CACHE);
+    public BitSetCachingWrapperFilter(Filter filter) {
+      this.filter = filter;
     }
 
     @Override
-    protected DocIdSet cacheImpl(DocIdSetIterator iterator, LeafReader reader)
-        throws IOException {
-      final FixedBitSet cached = new FixedBitSet(reader.maxDoc());
-      cached.or(iterator);
-      return new BitDocIdSet(cached);
+    public DocIdSet getDocIdSet(LeafReaderContext context, final Bits acceptDocs) throws IOException {
+      final LeafReader reader = context.reader();
+      final Object key = reader.getCoreCacheKey();
+
+      BitDocIdSet docIdSet = cache.get(key);
+      if (docIdSet == null) {
+        final DocIdSet uncached = filter.getDocIdSet(context, null);
+        final DocIdSetIterator it = uncached == null ? null : uncached.iterator();
+        if (it != null) {
+          BitDocIdSet.Builder builder = new BitDocIdSet.Builder(context.reader().maxDoc());
+          builder.or(it);
+          docIdSet = builder.build();
+        }
+        if (docIdSet == null) {
+          docIdSet = new BitDocIdSet(new SparseFixedBitSet(context.reader().maxDoc()));
+        }
+        cache.put(key, docIdSet);
+      }
+
+      return docIdSet == EMPTY ? null : BitsFilteredDocIdSet.wrap(docIdSet, acceptDocs);
     }
 
+    @Override
+    public String toString(String field) {
+      return getClass().getName() + "(" + filter.toString(field) + ")";
+    }
   }
 
   public void test() throws IOException {
@@ -92,7 +120,7 @@ public class TestBlockJoinSorter extends
     writer.close();
 
     final LeafReader reader = getOnlySegmentReader(indexReader);
-    final Filter parentsFilter = new FixedBitSetCachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("parent", "true"))));
+    final Filter parentsFilter = new BitSetCachingWrapperFilter(new QueryWrapperFilter(new TermQuery(new Term("parent", "true"))));
     final FixedBitSet parentBits = (FixedBitSet) parentsFilter.getDocIdSet(reader.getContext(), null).bits();
     final NumericDocValues parentValues = reader.getNumericDocValues("parent_val");
     final NumericDocValues childValues = reader.getNumericDocValues("child_val");

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java Tue Mar 31 05:22:40 2015
@@ -30,9 +30,11 @@ import org.apache.lucene.queries.functio
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.search.ComplexExplanation;
 import org.apache.lucene.search.Explanation;
+import org.apache.lucene.search.FilterScorer;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.TwoPhaseIterator;
 import org.apache.lucene.search.Weight;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.ToStringUtils;
@@ -274,45 +276,36 @@ public class CustomScoreQuery extends Qu
   /**
    * A scorer that applies a (callback) function on scores of the subQuery.
    */
-  private class CustomScorer extends Scorer {
+  private class CustomScorer extends FilterScorer {
     private final float qWeight;
     private final Scorer subQueryScorer;
     private final Scorer[] valSrcScorers;
     private final CustomScoreProvider provider;
     private final float[] vScores; // reused in score() to avoid allocating this array for each doc
-
-    // TODO : can we use FilterScorer here instead?
+    private int valSrcDocID = -1; // we lazily advance subscorers.
 
     // constructor
     private CustomScorer(CustomScoreProvider provider, CustomWeight w, float qWeight,
         Scorer subQueryScorer, Scorer[] valSrcScorers) {
-      super(w);
+      super(subQueryScorer, w);
       this.qWeight = qWeight;
       this.subQueryScorer = subQueryScorer;
       this.valSrcScorers = valSrcScorers;
       this.vScores = new float[valSrcScorers.length];
       this.provider = provider;
     }
-
+    
     @Override
-    public int nextDoc() throws IOException {
-      int doc = subQueryScorer.nextDoc();
-      if (doc != NO_MORE_DOCS) {
+    public float score() throws IOException {
+      // lazily advance to current doc.
+      int doc = docID();
+      if (doc > valSrcDocID) {
         for (Scorer valSrcScorer : valSrcScorers) {
           valSrcScorer.advance(doc);
         }
+        valSrcDocID = doc;
       }
-      return doc;
-    }
-
-    @Override
-    public int docID() {
-      return subQueryScorer.docID();
-    }
-    
-    /*(non-Javadoc) @see org.apache.lucene.search.Scorer#score() */
-    @Override
-    public float score() throws IOException {
+      // TODO: this thing technically takes any Query, so what about when subs don't match?
       for (int i = 0; i < valSrcScorers.length; i++) {
         vScores[i] = valSrcScorers[i].score();
       }
@@ -320,30 +313,9 @@ public class CustomScoreQuery extends Qu
     }
 
     @Override
-    public int freq() throws IOException {
-      return subQueryScorer.freq();
-    }
-
-    @Override
     public Collection<ChildScorer> getChildren() {
       return Collections.singleton(new ChildScorer(subQueryScorer, "CUSTOM"));
     }
-
-    @Override
-    public int advance(int target) throws IOException {
-      int doc = subQueryScorer.advance(target);
-      if (doc != NO_MORE_DOCS) {
-        for (Scorer valSrcScorer : valSrcScorers) {
-          valSrcScorer.advance(doc);
-        }
-      }
-      return doc;
-    }
-
-    @Override
-    public long cost() {
-      return subQueryScorer.cost();
-    }
   }
 
   @Override

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/TermsQuery.java Tue Mar 31 05:22:40 2015
@@ -192,13 +192,9 @@ public class TermsQuery extends Query im
 
   @Override
   public boolean equals(Object obj) {
-    if (this == obj) {
-      return true;
-    }
-    if ((obj == null) || (obj.getClass() != this.getClass())) {
+    if (!super.equals(obj)) {
       return false;
     }
-
     TermsQuery that = (TermsQuery) obj;
     // first check the fields before even comparing the bytes
     if (that.hashCode == hashCode && getBoost() == that.getBoost() && Arrays.equals(termsAndFields, that.termsAndFields)) {
@@ -214,7 +210,7 @@ public class TermsQuery extends Query im
 
   @Override
   public int hashCode() {
-    return hashCode ^ Float.floatToIntBits(getBoost());
+      return super.hashCode() ^ this.hashCode;
   }
 
   @Override

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java Tue Mar 31 05:22:40 2015
@@ -203,14 +203,12 @@ public class FunctionQuery extends Query
   public boolean equals(Object o) {
     if (!FunctionQuery.class.isInstance(o)) return false;
     FunctionQuery other = (FunctionQuery)o;
-    return this.getBoost() == other.getBoost()
+    return super.equals(o)
             && this.func.equals(other.func);
   }
 
-  /** Returns a hash code value for this object. */
   @Override
   public int hashCode() {
-    return func.hashCode()*31 + Float.floatToIntBits(getBoost());
+    return super.hashCode() ^ func.hashCode();
   }
-
 }

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/CommonTermsQueryTest.java Tue Mar 31 05:22:40 2015
@@ -49,6 +49,7 @@ import org.apache.lucene.search.TermQuer
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LineFileDocs;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.PriorityQueue;
@@ -126,9 +127,7 @@ public class CommonTermsQueryTest extend
       assertEquals("3", r.document(search.scoreDocs[0].doc).get("id"));
       
     }
-    r.close();
-    w.close();
-    dir.close();
+    IOUtils.close(r, w, dir, analyzer);
   }
   
   public void testEqualsHashCode() {
@@ -321,9 +320,7 @@ public class CommonTermsQueryTest extend
               r.document(search.scoreDocs[0].doc).get("id"),
               r.document(search.scoreDocs[1].doc).get("id"))));
     }
-    r.close();
-    w.close();
-    dir.close();
+    IOUtils.close(r, w, dir, analyzer);
   }
   
   public void testIllegalOccur() {
@@ -395,9 +392,7 @@ public class CommonTermsQueryTest extend
       assertEquals("3", r.document(search.scoreDocs[1].doc).get("id"));
       assertEquals("0", r.document(search.scoreDocs[2].doc).get("id"));
     }
-    r.close();
-    w.close();
-    dir.close();
+    IOUtils.close(r, w, dir, analyzer);
   }
   
   public void testRandomIndex() throws IOException {
@@ -496,10 +491,7 @@ public class CommonTermsQueryTest extend
       QueryUtils.check(random(), cq, newSearcher(reader2));
       reader2.close();
     } finally {
-      reader.close();
-      wrapper.close();
-      w.close();
-      dir.close();
+      IOUtils.close(reader, wrapper, w, dir, analyzer);
     }
     
   }

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/TermsQueryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/TermsQueryTest.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/TermsQueryTest.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/TermsQueryTest.java Tue Mar 31 05:22:40 2015
@@ -166,6 +166,15 @@ public class TermsQueryTest extends Luce
         assertFalse(right.equals(notEqual));
       }
     }
+
+    TermsQuery tq1 = new TermsQuery(new Term("thing", "apple"));
+    TermsQuery tq2 = new TermsQuery(new Term("thing", "orange"));
+    assertFalse(tq1.hashCode() == tq2.hashCode());
+
+    // different fields with the same term should have differing hashcodes
+    tq1 = new TermsQuery(new Term("thing1", "apple"));
+    tq2 = new TermsQuery(new Term("thing2", "apple"));
+    assertFalse(tq1.hashCode() == tq2.hashCode());
   }
 
   public void testSingleFieldEquals() {

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/FunctionTestSetup.java Tue Mar 31 05:22:40 2015
@@ -84,6 +84,7 @@ public abstract class FunctionTestSetup
   public static void afterClassFunctionTestSetup() throws Exception {
     dir.close();
     dir = null;
+    anlzr.close();
     anlzr = null;
   }
 

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestLongNormValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestLongNormValueSource.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestLongNormValueSource.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestLongNormValueSource.java Tue Mar 31 05:22:40 2015
@@ -17,6 +17,7 @@ package org.apache.lucene.queries.functi
  * limitations under the License.
  */
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -46,12 +47,15 @@ public class TestLongNormValueSource ext
   static Directory dir;
   static IndexReader reader;
   static IndexSearcher searcher;
+  static Analyzer analyzer;
+  
   private static Similarity sim = new PreciseDefaultSimilarity();
 
   @BeforeClass
   public static void beforeClass() throws Exception {
     dir = newDirectory();
-    IndexWriterConfig iwConfig = newIndexWriterConfig(new MockAnalyzer(random()));
+    analyzer = new MockAnalyzer(random());
+    IndexWriterConfig iwConfig = newIndexWriterConfig(analyzer);
     iwConfig.setMergePolicy(newLogMergePolicy());
     iwConfig.setSimilarity(sim);
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConfig);
@@ -76,6 +80,8 @@ public class TestLongNormValueSource ext
     reader = null;
     dir.close();
     dir = null;
+    analyzer.close();
+    analyzer = null;
   }
 
   public void testNorm() throws Exception {

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java Tue Mar 31 05:22:40 2015
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 import java.io.IOException;
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.DoubleField;
@@ -92,6 +93,7 @@ import org.junit.BeforeClass;
  */
 public class TestValueSources extends LuceneTestCase {
   static Directory dir;
+  static Analyzer analyzer;
   static IndexReader reader;
   static IndexSearcher searcher;
   
@@ -109,7 +111,8 @@ public class TestValueSources extends Lu
   @BeforeClass
   public static void beforeClass() throws Exception {
     dir = newDirectory();
-    IndexWriterConfig iwConfig = newIndexWriterConfig(new MockAnalyzer(random()));
+    analyzer = new MockAnalyzer(random());
+    IndexWriterConfig iwConfig = newIndexWriterConfig(analyzer);
     iwConfig.setMergePolicy(newLogMergePolicy());
     RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConfig);
     Document document = new Document();
@@ -169,6 +172,8 @@ public class TestValueSources extends Lu
     reader = null;
     dir.close();
     dir = null;
+    analyzer.close();
+    analyzer = null;
   }
   
   public void testConst() throws Exception {

Modified: lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queries/src/test/org/apache/lucene/queries/mlt/TestMoreLikeThis.java Tue Mar 31 05:22:40 2015
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
@@ -87,7 +88,8 @@ public class TestMoreLikeThis extends Lu
     Map<String,Float> originalValues = getOriginalValues();
     
     MoreLikeThis mlt = new MoreLikeThis(reader);
-    mlt.setAnalyzer(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
+    mlt.setAnalyzer(analyzer);
     mlt.setMinDocFreq(1);
     mlt.setMinTermFreq(1);
     mlt.setMinWordLen(1);
@@ -116,12 +118,14 @@ public class TestMoreLikeThis extends Lu
           + tq.getTerm().text() + "' got " + tq.getBoost(), totalBoost, tq
           .getBoost(), 0.0001);
     }
+    analyzer.close();
   }
   
   private Map<String,Float> getOriginalValues() throws IOException {
     Map<String,Float> originalValues = new HashMap<>();
     MoreLikeThis mlt = new MoreLikeThis(reader);
-    mlt.setAnalyzer(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
+    mlt.setAnalyzer(analyzer);
     mlt.setMinDocFreq(1);
     mlt.setMinTermFreq(1);
     mlt.setMinWordLen(1);
@@ -135,24 +139,28 @@ public class TestMoreLikeThis extends Lu
       TermQuery tq = (TermQuery) clause.getQuery();
       originalValues.put(tq.getTerm().text(), tq.getBoost());
     }
+    analyzer.close();
     return originalValues;
   }
   
   // LUCENE-3326
   public void testMultiFields() throws Exception {
     MoreLikeThis mlt = new MoreLikeThis(reader);
-    mlt.setAnalyzer(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
+    mlt.setAnalyzer(analyzer);
     mlt.setMinDocFreq(1);
     mlt.setMinTermFreq(1);
     mlt.setMinWordLen(1);
     mlt.setFieldNames(new String[] {"text", "foobar"});
     mlt.like("foobar", new StringReader("this is a test"));
+    analyzer.close();
   }
 
   // LUCENE-5725
   public void testMultiValues() throws Exception {
     MoreLikeThis mlt = new MoreLikeThis(reader);
-    mlt.setAnalyzer(new MockAnalyzer(random(), MockTokenizer.KEYWORD, false));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.KEYWORD, false);
+    mlt.setAnalyzer(analyzer);
     mlt.setMinDocFreq(1);
     mlt.setMinTermFreq(1);
     mlt.setMinWordLen(1);
@@ -167,12 +175,15 @@ public class TestMoreLikeThis extends Lu
       Term term = ((TermQuery) clause.getQuery()).getTerm();
       assertTrue(Arrays.asList(new Term("text", "lucene"), new Term("text", "apache")).contains(term));
     }
+    analyzer.close();
   }
 
   // just basic equals/hashcode etc
   public void testMoreLikeThisQuery() throws Exception {
-    Query query = new MoreLikeThisQuery("this is a test", new String[] { "text" }, new MockAnalyzer(random()), "text");
+    Analyzer analyzer = new MockAnalyzer(random());
+    Query query = new MoreLikeThisQuery("this is a test", new String[] { "text" }, analyzer, "text");
     QueryUtils.check(random(), query, searcher);
+    analyzer.close();
   }
 
   public void testTopN() throws Exception {
@@ -190,7 +201,8 @@ public class TestMoreLikeThis extends Lu
 
     // setup MLT query
     MoreLikeThis mlt = new MoreLikeThis(reader);
-    mlt.setAnalyzer(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
+    mlt.setAnalyzer(analyzer);
     mlt.setMaxQueryTerms(topN);
     mlt.setMinDocFreq(1);
     mlt.setMinTermFreq(1);
@@ -221,6 +233,7 @@ public class TestMoreLikeThis extends Lu
     // clean up
     reader.close();
     dir.close();
+    analyzer.close();
   }
 
   private String[] generateStrSeq(int from, int size) {

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java Tue Mar 31 05:22:40 2015
@@ -64,7 +64,7 @@ public abstract class QueryParserBase ex
   Operator operator = OR_OPERATOR;
 
   boolean lowercaseExpandedTerms = true;
-  MultiTermQuery.RewriteMethod multiTermRewriteMethod = MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE;
+  MultiTermQuery.RewriteMethod multiTermRewriteMethod = MultiTermQuery.CONSTANT_SCORE_REWRITE;
   boolean allowLeadingWildcard = false;
 
   protected String field;
@@ -272,7 +272,7 @@ public abstract class QueryParserBase ex
   }
 
   /**
-   * By default QueryParser uses {@link org.apache.lucene.search.MultiTermQuery#CONSTANT_SCORE_FILTER_REWRITE}
+   * By default QueryParser uses {@link org.apache.lucene.search.MultiTermQuery#CONSTANT_SCORE_REWRITE}
    * when creating a {@link PrefixQuery}, {@link WildcardQuery} or {@link TermRangeQuery}. This implementation is generally preferable because it
    * a) Runs faster b) Does not have the scarcity of terms unduly influence score
    * c) avoids any {@link TooManyClauses} exception.

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/complexPhrase/ComplexPhraseQueryParser.java Tue Mar 31 05:22:40 2015
@@ -106,7 +106,7 @@ public class ComplexPhraseQueryParser ex
         // QueryParser is not guaranteed threadsafe anyway so this temporary
         // state change should not
         // present an issue
-        setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
+        setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
         return super.parse(query);
       } finally {
         setMultiTermRewriteMethod(oldMethod);
@@ -186,7 +186,7 @@ public class ComplexPhraseQueryParser ex
       // Must use old-style RangeQuery in order to produce a BooleanQuery
       // that can be turned into SpanOr clause
       TermRangeQuery rangeQuery = TermRangeQuery.newStringRange(field, part1, part2, startInclusive, endInclusive);
-      rangeQuery.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
+      rangeQuery.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
       return rangeQuery;
     }
     return super.newRangeQuery(field, part1, part2, startInclusive, endInclusive);

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/messages/NLS.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/messages/NLS.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/messages/NLS.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/messages/NLS.java Tue Mar 31 05:22:40 2015
@@ -70,7 +70,7 @@ public class NLS {
     String str = getLocalizedMessage(key, locale);
 
     if (args.length > 0) {
-      str = MessageFormat.format(str, args);
+      str = new MessageFormat(str, Locale.ROOT).format(args);
     }
 
     return str;

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/CommonQueryParserConfiguration.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/CommonQueryParserConfiguration.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/CommonQueryParserConfiguration.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/CommonQueryParserConfiguration.java Tue Mar 31 05:22:40 2015
@@ -73,7 +73,7 @@ public interface CommonQueryParserConfig
   
   /**
    * By default, it uses
-   * {@link MultiTermQuery#CONSTANT_SCORE_FILTER_REWRITE} when creating a
+   * {@link MultiTermQuery#CONSTANT_SCORE_REWRITE} when creating a
    * prefix, wildcard and range queries. This implementation is generally
    * preferable because it a) Runs faster b) Does not have the scarcity of terms
    * unduly influence score c) avoids any {@link TooManyListenersException}

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java Tue Mar 31 05:22:40 2015
@@ -256,7 +256,7 @@ public class StandardQueryParser extends
   
   /**
    * By default, it uses
-   * {@link MultiTermQuery#CONSTANT_SCORE_FILTER_REWRITE} when creating a
+   * {@link MultiTermQuery#CONSTANT_SCORE_REWRITE} when creating a
    * prefix, wildcard and range queries. This implementation is generally
    * preferable because it a) Runs faster b) Does not have the scarcity of terms
    * unduly influence score c) avoids any {@link TooManyListenersException}

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java Tue Mar 31 05:22:40 2015
@@ -208,7 +208,7 @@ public class StandardQueryConfigHandler
     set(ConfigurationKeys.FIELD_BOOST_MAP, new LinkedHashMap<String, Float>());
     set(ConfigurationKeys.FUZZY_CONFIG, new FuzzyConfig());
     set(ConfigurationKeys.LOCALE, Locale.getDefault());
-    set(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD, MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
+    set(ConfigurationKeys.MULTI_TERM_REWRITE_METHOD, MultiTermQuery.CONSTANT_SCORE_REWRITE);
     set(ConfigurationKeys.FIELD_DATE_RESOLUTION_MAP, new HashMap<CharSequence, DateTools.Resolution>());
     
   }

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/MultiTermRewriteMethodProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/MultiTermRewriteMethodProcessor.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/MultiTermRewriteMethodProcessor.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/MultiTermRewriteMethodProcessor.java Tue Mar 31 05:22:40 2015
@@ -30,7 +30,7 @@ import org.apache.lucene.search.MultiTer
 /**
  * This processor instates the default
  * {@link org.apache.lucene.search.MultiTermQuery.RewriteMethod},
- * {@link MultiTermQuery#CONSTANT_SCORE_FILTER_REWRITE}, for multi-term
+ * {@link MultiTermQuery#CONSTANT_SCORE_REWRITE}, for multi-term
  * query nodes.
  */
 public class MultiTermRewriteMethodProcessor extends QueryNodeProcessorImpl {

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java Tue Mar 31 05:22:40 2015
@@ -23,6 +23,7 @@ import org.apache.lucene.search.BooleanC
 import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.FuzzyQuery;
 import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.MatchNoDocsQuery;
 import org.apache.lucene.search.PrefixQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.util.QueryBuilder;
@@ -141,14 +142,18 @@ public class SimpleQueryParser extends Q
     this.flags = flags;
   }
 
-  /** Parses the query text and returns parsed query (or null if empty) */
+  /** Parses the query text and returns parsed query */
   public Query parse(String queryText) {
     char data[] = queryText.toCharArray();
     char buffer[] = new char[data.length];
 
     State state = new State(data, buffer, 0, data.length);
     parseSubQuery(state);
-    return state.top;
+    if (state.top == null) {
+      return new MatchNoDocsQuery();
+    } else {
+      return state.top;
+    }
   }
 
   private void parseSubQuery(State state) {

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/query/RewriteQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/query/RewriteQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/query/RewriteQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/surround/query/RewriteQuery.java Tue Mar 31 05:22:40 2015
@@ -49,7 +49,7 @@ abstract class RewriteQuery<SQ extends S
 
   @Override
   public int hashCode() {
-    return getClass().hashCode()
+    return super.hashCode()
     ^ fieldName.hashCode()
     ^ qf.hashCode()
     ^ srndQuery.hashCode();
@@ -62,9 +62,10 @@ abstract class RewriteQuery<SQ extends S
     if (! getClass().equals(obj.getClass()))
       return false;
     RewriteQuery other = (RewriteQuery)obj;
-    return fieldName.equals(other.fieldName)
-  && qf.equals(other.qf)
-  && srndQuery.equals(other.srndQuery);
+    return super.equals(obj)
+      && fieldName.equals(other.fieldName)
+      && qf.equals(other.qf)
+      && srndQuery.equals(other.srndQuery);
   }
 
   /** 

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/CoreParser.java Tue Mar 31 05:22:40 2015
@@ -64,8 +64,6 @@ public class CoreParser implements Query
     this.analyzer = analyzer;
     this.parser = parser;
     filterFactory = new FilterBuilderFactory();
-    filterFactory.addBuilder("RangeFilter", new RangeFilterBuilder());
-    filterFactory.addBuilder("NumericRangeFilter", new NumericRangeFilterBuilder());
 
     queryFactory = new QueryBuilderFactory();
     queryFactory.addBuilder("TermQuery", new TermQueryBuilder());
@@ -73,6 +71,7 @@ public class CoreParser implements Query
     queryFactory.addBuilder("MatchAllDocsQuery", new MatchAllDocsQueryBuilder());
     queryFactory.addBuilder("BooleanQuery", new BooleanQueryBuilder(queryFactory));
     queryFactory.addBuilder("NumericRangeQuery", new NumericRangeQueryBuilder());
+    queryFactory.addBuilder("RangeQuery", new RangeQueryBuilder());
     queryFactory.addBuilder("DisjunctionMaxQuery", new DisjunctionMaxQueryBuilder(queryFactory));
     if (parser != null) {
       queryFactory.addBuilder("UserQuery", new UserInputQueryBuilder(parser));
@@ -80,7 +79,7 @@ public class CoreParser implements Query
       queryFactory.addBuilder("UserQuery", new UserInputQueryBuilder(defaultField, analyzer));
     }
     queryFactory.addBuilder("FilteredQuery", new FilteredQueryBuilder(filterFactory, queryFactory));
-    queryFactory.addBuilder("ConstantScoreQuery", new ConstantScoreQueryBuilder(filterFactory));
+    queryFactory.addBuilder("ConstantScoreQuery", new ConstantScoreQueryBuilder(queryFactory));
 
     filterFactory.addBuilder("CachedFilter", new CachedFilterBuilder(queryFactory,
         filterFactory, maxNumCachedFilters));

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/CachedFilterBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/CachedFilterBuilder.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/CachedFilterBuilder.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/CachedFilterBuilder.java Tue Mar 31 05:22:40 2015
@@ -4,7 +4,7 @@
 package org.apache.lucene.queryparser.xml.builders;
 
 import org.apache.lucene.queryparser.xml.*;
-import org.apache.lucene.search.CachingWrapperFilter;
+import org.apache.lucene.search.CachingWrapperQuery;
 import org.apache.lucene.search.Filter;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.QueryWrapperFilter;
@@ -48,7 +48,7 @@ public class CachedFilterBuilder impleme
   private final QueryBuilderFactory queryFactory;
   private final FilterBuilderFactory filterFactory;
 
-  private LRUCache<Object, Filter> filterCache;
+  private LRUCache<Object, Query> filterCache;
 
   private final int cacheSize;
 
@@ -81,20 +81,20 @@ public class CachedFilterBuilder impleme
       f = filterFactory.getFilter(childElement);
       cacheKey = f;
     }
-    Filter cachedFilter = filterCache.get(cacheKey);
+    Query cachedFilter = filterCache.get(cacheKey);
     if (cachedFilter != null) {
-      return cachedFilter; // cache hit
+      return new QueryWrapperFilter(cachedFilter); // cache hit
     }
 
     //cache miss
     if (qb != null) {
       cachedFilter = new QueryWrapperFilter(q);
     } else {
-      cachedFilter = new CachingWrapperFilter(f);
+      cachedFilter = new CachingWrapperQuery(f);
     }
 
     filterCache.put(cacheKey, cachedFilter);
-    return cachedFilter;
+    return new QueryWrapperFilter(cachedFilter);
   }
 
   static class LRUCache<K, V> extends java.util.LinkedHashMap<K, V> {

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/ConstantScoreQueryBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/ConstantScoreQueryBuilder.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/ConstantScoreQueryBuilder.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/java/org/apache/lucene/queryparser/xml/builders/ConstantScoreQueryBuilder.java Tue Mar 31 05:22:40 2015
@@ -1,11 +1,11 @@
 package org.apache.lucene.queryparser.xml.builders;
 
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.Query;
 import org.apache.lucene.queryparser.xml.DOMUtils;
-import org.apache.lucene.queryparser.xml.FilterBuilderFactory;
 import org.apache.lucene.queryparser.xml.ParserException;
 import org.apache.lucene.queryparser.xml.QueryBuilder;
+import org.apache.lucene.queryparser.xml.QueryBuilderFactory;
+import org.apache.lucene.search.ConstantScoreQuery;
+import org.apache.lucene.search.Query;
 import org.w3c.dom.Element;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,17 +29,17 @@ import org.w3c.dom.Element;
  */
 public class ConstantScoreQueryBuilder implements QueryBuilder {
 
-  private final FilterBuilderFactory filterFactory;
+  private final QueryBuilderFactory queryFactory;
 
-  public ConstantScoreQueryBuilder(FilterBuilderFactory filterFactory) {
-    this.filterFactory = filterFactory;
+  public ConstantScoreQueryBuilder(QueryBuilderFactory queryFactory) {
+    this.queryFactory = queryFactory;
   }
 
   @Override
   public Query getQuery(Element e) throws ParserException {
-    Element filterElem = DOMUtils.getFirstChildOrFail(e);
+    Element queryElem = DOMUtils.getFirstChildOrFail(e);
 
-    Query q = new ConstantScoreQuery(filterFactory.getFilter(filterElem));
+    Query q = new ConstantScoreQuery(queryFactory.getQuery(queryElem));
     q.setBoost(DOMUtils.getAttribute(e, "boost", 1.0f));
     return q;
   }

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/flexible/standard/TestQPHelper.java Tue Mar 31 05:22:40 2015
@@ -321,15 +321,15 @@ public class TestQPHelper extends Lucene
     StandardQueryParser qp = new StandardQueryParser(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false));
     Query q = qp.parse("foo*bar", "field");
     assertTrue(q instanceof WildcardQuery);
-    assertEquals(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
+    assertEquals(MultiTermQuery.CONSTANT_SCORE_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
 
     q = qp.parse("foo*", "field");
     assertTrue(q instanceof PrefixQuery);
-    assertEquals(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
+    assertEquals(MultiTermQuery.CONSTANT_SCORE_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
 
     q = qp.parse("[a TO z]", "field");
     assertTrue(q instanceof TermRangeQuery);
-    assertEquals(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
+    assertEquals(MultiTermQuery.CONSTANT_SCORE_REWRITE, ((MultiTermQuery) q).getRewriteMethod());
   }
 
   public void testCJK() throws Exception {
@@ -665,12 +665,12 @@ public class TestQPHelper extends Lucene
 
   public void testRange() throws Exception {
     assertQueryEquals("[ a TO z]", null, "[a TO z]");
-    assertEquals(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE, ((TermRangeQuery)getQuery("[ a TO z]", null)).getRewriteMethod());
+    assertEquals(MultiTermQuery.CONSTANT_SCORE_REWRITE, ((TermRangeQuery)getQuery("[ a TO z]", null)).getRewriteMethod());
 
     StandardQueryParser qp = new StandardQueryParser();
     
-    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
-    assertEquals(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE,((TermRangeQuery)qp.parse("[ a TO z]", "field")).getRewriteMethod());
+    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
+    assertEquals(MultiTermQuery.SCORING_BOOLEAN_REWRITE,((TermRangeQuery)qp.parse("[ a TO z]", "field")).getRewriteMethod());
 
     // test open ranges
     assertQueryEquals("[ a TO * ]", null, "[a TO *]");
@@ -1153,12 +1153,12 @@ public class TestQPHelper extends Lucene
     assertEquals(q, qp.parse("/[A-Z][123]/", df));
     q.setBoost(0.5f);
     assertEquals(q, qp.parse("/[A-Z][123]/^0.5", df));
-    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
-    q.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
+    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
+    q.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
     assertTrue(qp.parse("/[A-Z][123]/^0.5", df) instanceof RegexpQuery);
     assertEquals(q, qp.parse("/[A-Z][123]/^0.5", df));
-    assertEquals(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE, ((RegexpQuery)qp.parse("/[A-Z][123]/^0.5", df)).getRewriteMethod());
-    qp.setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
+    assertEquals(MultiTermQuery.SCORING_BOOLEAN_REWRITE, ((RegexpQuery)qp.parse("/[A-Z][123]/^0.5", df)).getRewriteMethod());
+    qp.setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_REWRITE);
     
     Query escaped = new RegexpQuery(new Term("field", "[a-z]\\/[123]"));
     assertEquals(escaped, qp.parse("/[a-z]\\/[123]/", df));

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java Tue Mar 31 05:22:40 2015
@@ -29,6 +29,7 @@ import org.apache.lucene.search.BooleanC
 import org.apache.lucene.search.BooleanQuery;
 import org.apache.lucene.search.FuzzyQuery;
 import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.MatchNoDocsQuery;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.PrefixQuery;
 import org.apache.lucene.search.Query;
@@ -273,17 +274,19 @@ public class TestSimpleQueryParser exten
   }
 
   public void testGarbageEmpty() throws Exception {
-    assertNull(parse(""));
-    assertNull(parse("  "));
-    assertNull(parse("  "));
-    assertNull(parse("\\ "));
-    assertNull(parse("\\ \\ "));
-    assertNull(parse("\"\""));
-    assertNull(parse("\" \""));
-    assertNull(parse("\" \"|\" \""));
-    assertNull(parse("(\" \"|\" \")"));
-    assertNull(parse("\" \" \" \""));
-    assertNull(parse("(\" \" \" \")"));
+    MatchNoDocsQuery expected = new MatchNoDocsQuery();
+
+    assertEquals(expected, parse(""));
+    assertEquals(expected, parse("  "));
+    assertEquals(expected, parse("  "));
+    assertEquals(expected, parse("\\ "));
+    assertEquals(expected, parse("\\ \\ "));
+    assertEquals(expected, parse("\"\""));
+    assertEquals(expected, parse("\" \""));
+    assertEquals(expected, parse("\" \"|\" \""));
+    assertEquals(expected, parse("(\" \"|\" \")"));
+    assertEquals(expected, parse("\" \" \" \""));
+    assertEquals(expected, parse("(\" \" \" \")"));
   }
 
   public void testGarbageAND() throws Exception {
@@ -643,4 +646,4 @@ public class TestSimpleQueryParser exten
       parseKeyword(sb.toString(), TestUtil.nextInt(random(), 0, 1024)); // no exception
     }
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/util/QueryParserTestBase.java Tue Mar 31 05:22:40 2015
@@ -571,12 +571,12 @@ public abstract class QueryParserTestBas
     assertQueryEquals("[ a TO z}", null, "[a TO z}");
     assertQueryEquals("{ a TO z]", null, "{a TO z]"); 
 
-     assertEquals(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE, ((TermRangeQuery)getQuery("[ a TO z]")).getRewriteMethod());
+     assertEquals(MultiTermQuery.CONSTANT_SCORE_REWRITE, ((TermRangeQuery)getQuery("[ a TO z]")).getRewriteMethod());
 
     CommonQueryParserConfiguration qp = getParserConfig( new MockAnalyzer(random(), MockTokenizer.SIMPLE, true));
     
-    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
-    assertEquals(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE,((TermRangeQuery)getQuery("[ a TO z]", qp)).getRewriteMethod());
+    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
+    assertEquals(MultiTermQuery.SCORING_BOOLEAN_REWRITE,((TermRangeQuery)getQuery("[ a TO z]", qp)).getRewriteMethod());
     
     // test open ranges
     assertQueryEquals("[ a TO * ]", null, "[a TO *]");
@@ -982,12 +982,12 @@ public abstract class QueryParserTestBas
     assertEquals(q, getQuery("/[A-Z][123]/",qp));
     q.setBoost(0.5f);
     assertEquals(q, getQuery("/[A-Z][123]/^0.5",qp));
-    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
-    q.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
+    qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
+    q.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_REWRITE);
     assertTrue(getQuery("/[A-Z][123]/^0.5",qp) instanceof RegexpQuery);
-    assertEquals(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE, ((RegexpQuery)getQuery("/[A-Z][123]/^0.5",qp)).getRewriteMethod());
+    assertEquals(MultiTermQuery.SCORING_BOOLEAN_REWRITE, ((RegexpQuery)getQuery("/[A-Z][123]/^0.5",qp)).getRewriteMethod());
     assertEquals(q, getQuery("/[A-Z][123]/^0.5",qp));
-    qp.setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
+    qp.setMultiTermRewriteMethod(MultiTermQuery.CONSTANT_SCORE_REWRITE);
     
     Query escaped = new RegexpQuery(new Term("field", "[a-z]\\/[123]"));
     assertEquals(escaped, getQuery("/[a-z]\\/[123]/",qp));

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/ConstantScoreQuery.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/ConstantScoreQuery.xml?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/ConstantScoreQuery.xml (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/ConstantScoreQuery.xml Tue Mar 31 05:22:40 2015
@@ -16,5 +16,5 @@
  limitations under the License.
 -->
 <ConstantScoreQuery>
-	<RangeFilter fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
+	<RangeQuery fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
 </ConstantScoreQuery>

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/MatchAllDocsQuery.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/MatchAllDocsQuery.xml?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/MatchAllDocsQuery.xml (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/MatchAllDocsQuery.xml Tue Mar 31 05:22:40 2015
@@ -15,13 +15,11 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<FilteredQuery>
-	<Query>
+<BooleanQuery>
+	<Clause occurs="must">
 		<MatchAllDocsQuery/>
-	</Query>
-	
-	<Filter>
-		<RangeFilter fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
-	</Filter>
-	
-</FilteredQuery>
+	</Clause>
+	<Clause occurs="filter">
+		<RangeQuery fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
+	</Clause>
+</BooleanQuery>

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java Tue Mar 31 05:22:40 2015
@@ -121,9 +121,9 @@ public class TestParser extends LuceneTe
     assertEquals(1, ndq.getDisjuncts().size());
   }
 
-  public void testRangeFilterQueryXML() throws ParserException, IOException {
-    Query q = parse("RangeFilterQuery.xml");
-    dumpResults("RangeFilter", q, 5);
+  public void testRangeQueryXML() throws ParserException, IOException {
+    Query q = parse("RangeQuery.xml");
+    dumpResults("RangeQuery", q, 5);
   }
 
   public void testUserQueryXML() throws ParserException, IOException {
@@ -194,11 +194,6 @@ public class TestParser extends LuceneTe
     assertEquals("DuplicateFilterQuery should produce 1 result ", 1, h);
   }
 
-  public void testNumericRangeFilterQueryXML() throws ParserException, IOException {
-    Query q = parse("NumericRangeFilterQuery.xml");
-    dumpResults("NumericRangeFilter", q, 5);
-  }
-
   public void testNumericRangeQueryQueryXML() throws ParserException, IOException {
     Query q = parse("NumericRangeQueryQuery.xml");
     dumpResults("NumericRangeQuery", q, 5);

Modified: lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/UserInputQuery.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/UserInputQuery.xml?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/UserInputQuery.xml (original)
+++ lucene/dev/branches/lucene6271/lucene/queryparser/src/test/org/apache/lucene/queryparser/xml/UserInputQuery.xml Tue Mar 31 05:22:40 2015
@@ -15,12 +15,11 @@
  See the License for the specific language governing permissions and
  limitations under the License.
 -->
-<FilteredQuery>
-	<Query>
+<BooleanQuery>
+	<Clause occurs="must">
 		<UserQuery>"Bank of England"</UserQuery>
-	</Query>
-	<Filter>
-		<RangeFilter fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
-	</Filter>
-	
-</FilteredQuery>
+	</Clause>
+	<Clause occurs="filter">
+		<RangeQuery fieldName="date" lowerTerm="19870409" upperTerm="19870412"/>
+	</Clause>
+</BooleanQuery>

Modified: lucene/dev/branches/lucene6271/lucene/replicator/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/replicator/build.xml?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/replicator/build.xml (original)
+++ lucene/dev/branches/lucene6271/lucene/replicator/build.xml Tue Mar 31 05:22:40 2015
@@ -21,6 +21,9 @@
     Files replication utility
   </description>
 
+  <!-- TODO: go fix this in jetty, its stupid -->
+  <property name="tests.policy" location="../tools/junit4/solr-tests.policy"/>
+
   <import file="../module-build.xml"/>
 
   <path id="classpath">

Modified: lucene/dev/branches/lucene6271/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java (original)
+++ lucene/dev/branches/lucene6271/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java Tue Mar 31 05:22:40 2015
@@ -48,10 +48,6 @@ import org.junit.rules.TestRule;
 import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 
 public class HttpReplicatorTest extends ReplicatorTestCase {
-  @Rule
-  public TestRule testRules = 
-    RuleChain.outerRule(new SystemPropertiesRestoreRule());
-
   private Path clientWorkDir;
   private Replicator serverReplicator;
   private IndexWriter writer;

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsReader.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsReader.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsReader.java Tue Mar 31 05:22:40 2015
@@ -132,8 +132,8 @@ public final class VersionBlockTreeTerms
 
         BytesRef minTerm = readBytesRef(in);
         BytesRef maxTerm = readBytesRef(in);
-        if (docCount < 0 || docCount > state.segmentInfo.getDocCount()) { // #docs with field must be <= #docs
-          throw new CorruptIndexException("invalid docCount: " + docCount + " maxDoc: " + state.segmentInfo.getDocCount(), in);
+        if (docCount < 0 || docCount > state.segmentInfo.maxDoc()) { // #docs with field must be <= #docs
+          throw new CorruptIndexException("invalid docCount: " + docCount + " maxDoc: " + state.segmentInfo.maxDoc(), in);
         }
         if (sumDocFreq < docCount) {  // #postings must be >= #docs with field
           throw new CorruptIndexException("invalid sumDocFreq: " + sumDocFreq + " docCount: " + docCount, in);

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/codecs/idversion/VersionBlockTreeTermsWriter.java Tue Mar 31 05:22:40 2015
@@ -178,7 +178,7 @@ public final class VersionBlockTreeTerms
   {
     BlockTreeTermsWriter.validateSettings(minItemsInBlock, maxItemsInBlock);
 
-    maxDoc = state.segmentInfo.getDocCount();
+    maxDoc = state.segmentInfo.maxDoc();
 
     final String termsFileName = IndexFileNames.segmentFileName(state.segmentInfo.name, state.segmentSuffix, TERMS_EXTENSION);
     out = state.directory.createOutput(termsFileName, state.context);

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonQuery.java Tue Mar 31 05:22:40 2015
@@ -258,7 +258,7 @@ public class TermAutomatonQuery extends
 
     // NOTE: not quite correct, because if terms were added in different
     // order in each query but the language is the same, we return false:
-    return (this.getBoost() == other.getBoost())
+    return super.equals(o)
       && this.termToID.equals(other.termToID) &&
       Operations.sameLanguage(det, other.det);
   }
@@ -269,7 +269,7 @@ public class TermAutomatonQuery extends
     if (det == null) {
       throw new IllegalStateException("please call finish first");
     }
-    return Float.floatToIntBits(getBoost()) ^ termToID.hashCode() + det.toDot().hashCode();
+    return super.hashCode() ^ termToID.hashCode() + det.toDot().hashCode();
   }
 
   /** Returns the dot (graphviz) representation of this automaton.

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonScorer.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonScorer.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/java/org/apache/lucene/search/TermAutomatonScorer.java Tue Mar 31 05:22:40 2015
@@ -30,6 +30,7 @@ import org.apache.lucene.util.RamUsageEs
 import org.apache.lucene.util.automaton.Automaton;
 import org.apache.lucene.util.automaton.RunAutomaton;
 
+// TODO: add two-phase and needsScores support. maybe use conjunctionDISI internally?
 class TermAutomatonScorer extends Scorer {
   private final EnumAndScorer[] subs;
   private final EnumAndScorer[] subsOnDoc;
@@ -148,6 +149,12 @@ class TermAutomatonScorer extends Scorer
 
   @Override
   public int advance(int target) throws IOException {
+    if (docID == -1) {
+      popCurrentDoc();
+      if (docID >= target) {
+        return doNext();
+      }
+    }
     for(int i=0;i<numSubsOnDoc;i++) {
       EnumAndScorer sub = subsOnDoc[i];
       if (sub.posEnum.advance(target) != NO_MORE_DOCS) {

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/DuplicateFilterTest.java Tue Mar 31 05:22:40 2015
@@ -20,6 +20,7 @@ package org.apache.lucene.sandbox.querie
 import java.io.IOException;
 import java.util.HashSet;
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -31,6 +32,7 @@ import org.apache.lucene.search.ScoreDoc
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 
@@ -40,12 +42,14 @@ public class DuplicateFilterTest extends
   private IndexReader reader;
   TermQuery tq = new TermQuery(new Term("text", "lucene"));
   private IndexSearcher searcher;
+  Analyzer analyzer;
 
   @Override
   public void setUp() throws Exception {
     super.setUp();
     directory = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), directory, newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    analyzer = new MockAnalyzer(random());
+    RandomIndexWriter writer = new RandomIndexWriter(random(), directory, newIndexWriterConfig(analyzer).setMergePolicy(newLogMergePolicy()));
 
     //Add series of docs with filterable fields : url, text and dates  flags
     addDoc(writer, "http://lucene.apache.org", "lucene 1.4.3 available", "20040101");
@@ -69,8 +73,7 @@ public class DuplicateFilterTest extends
 
   @Override
   public void tearDown() throws Exception {
-    reader.close();
-    directory.close();
+    IOUtils.close(reader, directory, analyzer);
     super.tearDown();
   }
 

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/FuzzyLikeThisQueryTest.java Tue Mar 31 05:22:40 2015
@@ -30,6 +30,7 @@ import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 
 import java.io.IOException;
@@ -47,7 +48,7 @@ public class FuzzyLikeThisQueryTest exte
 
     analyzer = new MockAnalyzer(random());
     directory = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), directory, newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter writer = new RandomIndexWriter(random(), directory, newIndexWriterConfig(analyzer).setMergePolicy(newLogMergePolicy()));
 
     //Add series of docs with misspelt names
     addDoc(writer, "jonathon smythe", "1");
@@ -63,8 +64,7 @@ public class FuzzyLikeThisQueryTest exte
 
   @Override
   public void tearDown() throws Exception {
-    reader.close();
-    directory.close();
+    IOUtils.close(reader, directory, analyzer);
     super.tearDown();
   }
 

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/TestSlowFuzzyQuery2.java Tue Mar 31 05:22:40 2015
@@ -22,6 +22,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
@@ -34,6 +35,7 @@ import org.apache.lucene.search.MultiTer
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 
 /** 
@@ -90,7 +92,8 @@ public class TestSlowFuzzyQuery2 extends
     int terms = (int) Math.pow(2, bits);
     
     Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(random(), dir, newIndexWriterConfig(new MockAnalyzer(random(), MockTokenizer.KEYWORD, false)).setMergePolicy(newLogMergePolicy()));
+    Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.KEYWORD, false);
+    RandomIndexWriter writer = new RandomIndexWriter(random(), dir, newIndexWriterConfig(analyzer).setMergePolicy(newLogMergePolicy()));
 
     Document doc = new Document();
     Field field = newTextField("field", "", Field.Store.NO);
@@ -129,8 +132,7 @@ public class TestSlowFuzzyQuery2 extends
         assertEquals(Float.parseFloat(scoreDoc[1]), docs.scoreDocs[i].score, epsilon);
       }
     }
-    r.close();
-    dir.close();
+    IOUtils.close(r, dir, analyzer);
   }
   
   /* map bits to unicode codepoints */

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/sandbox/queries/regex/TestSpanRegexQuery.java Tue Mar 31 05:22:40 2015
@@ -18,6 +18,7 @@ package org.apache.lucene.sandbox.querie
  */
 
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -30,6 +31,7 @@ import org.apache.lucene.search.spans.Sp
 import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 
 public class TestSpanRegexQuery extends LuceneTestCase {
@@ -53,7 +55,8 @@ public class TestSpanRegexQuery extends
   
   public void testSpanRegex() throws Exception {
     Directory directory = newDirectory();
-    IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(new MockAnalyzer(random())));
+    Analyzer analyzer = new MockAnalyzer(random());
+    IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(analyzer));
     Document doc = new Document();
     // doc.add(newField("field", "the quick brown fox jumps over the lazy dog",
     // Field.Store.NO, Field.Index.ANALYZED));
@@ -75,7 +78,6 @@ public class TestSpanRegexQuery extends
     // true);
     int numHits = searcher.search(sfq, 1000).totalHits;
     assertEquals(1, numHits);
-    reader.close();
-    directory.close();
+    IOUtils.close(reader, directory, analyzer);
   }
 }

Modified: lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java (original)
+++ lucene/dev/branches/lucene6271/lucene/sandbox/src/test/org/apache/lucene/search/TestTermAutomatonQuery.java Tue Mar 31 05:22:40 2015
@@ -48,6 +48,7 @@ import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BitDocIdSet;
 import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 import org.apache.lucene.util.automaton.Automata;
@@ -578,6 +579,9 @@ public class TestTermAutomatonQuery exte
       Query q1 = q;
       Query q2 = bq;
       if (random().nextInt(5) == 1) {
+        if (VERBOSE) {
+          System.out.println("  use random filter");
+        }
         RandomFilter filter = new RandomFilter(random().nextLong(), random().nextFloat());
         q1 = new FilteredQuery(q1, filter);
         q2 = new FilteredQuery(q2, filter);
@@ -607,9 +611,7 @@ public class TestTermAutomatonQuery exte
       }
     }
 
-    w.close();
-    r.close();
-    dir.close();
+    IOUtils.close(w, r, dir, analyzer);
   }
 
   private Set<String> toDocIDs(IndexSearcher s, TopDocs hits) throws IOException {

Modified: lucene/dev/branches/lucene6271/lucene/site/changes/changes2html.pl
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/lucene/site/changes/changes2html.pl?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/lucene/site/changes/changes2html.pl (original)
+++ lucene/dev/branches/lucene6271/lucene/site/changes/changes2html.pl Tue Mar 31 05:22:40 2015
@@ -804,7 +804,9 @@ sub get_release_date {
     # Handle '1.2 RC6', which should be '1.2 final'
     $release = '1.2 final' if ($release eq '1.2 RC6');
 
-    $release =~ s/\.0\.0/\.0/;
+    if (not exists($release_dates{$release})) {
+      $release =~ s/\.0\.0/\.0/;
+    }
 
     $reldate = ( exists($release_dates{$release}) 
                ? $release_dates{$release}