You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/10/01 05:05:07 UTC

svn commit: r1177888 [11/16] - in /lucene/dev/branches/lucene2621: ./ dev-tools/eclipse/ dev-tools/idea/lucene/contrib/ dev-tools/maven/ lucene/ lucene/contrib/ lucene/contrib/demo/src/java/org/apache/lucene/demo/ lucene/contrib/demo/src/java/org/apach...

Modified: lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUNormalizer2Filter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUNormalizer2Filter.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUNormalizer2Filter.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUNormalizer2Filter.java Sat Oct  1 03:04:53 2011
@@ -29,7 +29,7 @@ import com.ibm.icu.text.Normalizer2;
  * Tests the ICUNormalizer2Filter
  */
 public class TestICUNormalizer2Filter extends BaseTokenStreamTestCase {
-  Analyzer a = new ReusableAnalyzerBase() {
+  Analyzer a = new Analyzer() {
     @Override
     public TokenStreamComponents createComponents(String fieldName, Reader reader) {
       Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, reader);
@@ -59,7 +59,7 @@ public class TestICUNormalizer2Filter ex
   }
   
   public void testAlternate() throws IOException {
-    Analyzer a = new ReusableAnalyzerBase() {
+    Analyzer a = new Analyzer() {
       @Override
       public TokenStreamComponents createComponents(String fieldName, Reader reader) {
         Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, reader);

Modified: lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUTransformFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUTransformFilter.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUTransformFilter.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/TestICUTransformFilter.java Sat Oct  1 03:04:53 2011
@@ -26,7 +26,6 @@ import org.apache.lucene.analysis.BaseTo
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.core.KeywordTokenizer;
 import org.apache.lucene.analysis.core.WhitespaceTokenizer;
-import org.apache.lucene.analysis.ReusableAnalyzerBase;
 import org.apache.lucene.analysis.TokenStream;
 
 import com.ibm.icu.text.Transliterator;
@@ -92,7 +91,7 @@ public class TestICUTransformFilter exte
   /** blast some random strings through the analyzer */
   public void testRandomStrings() throws Exception {
     final Transliterator transform = Transliterator.getInstance("Any-Latin");
-    Analyzer a = new ReusableAnalyzerBase() {
+    Analyzer a = new Analyzer() {
       @Override
       protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
         Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, reader);

Modified: lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/segmentation/TestICUTokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/segmentation/TestICUTokenizer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/segmentation/TestICUTokenizer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/analysis/icu/segmentation/TestICUTokenizer.java Sat Oct  1 03:04:53 2011
@@ -22,7 +22,6 @@ import org.apache.lucene.analysis.BaseTo
 import org.apache.lucene.analysis.TokenFilter;
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.icu.ICUNormalizer2Filter;
-import org.apache.lucene.analysis.ReusableAnalyzerBase;
 
 import java.io.IOException;
 import java.io.Reader;
@@ -61,7 +60,7 @@ public class TestICUTokenizer extends Ba
     assertTokenStreamContents(tokenizer, expected);
   }
   
-  private Analyzer a = new ReusableAnalyzerBase() {
+  private Analyzer a = new Analyzer() {
     @Override
     protected TokenStreamComponents createComponents(String fieldName,
         Reader reader) {

Modified: lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyFilter.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyFilter.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/icu/src/test/org/apache/lucene/collation/TestICUCollationKeyFilter.java Sat Oct  1 03:04:53 2011
@@ -44,7 +44,7 @@ public class TestICUCollationKeyFilter e
     (collator.getCollationKey(secondRangeEndOriginal).toByteArray()));
 
   
-  public final class TestAnalyzer extends ReusableAnalyzerBase {
+  public final class TestAnalyzer extends Analyzer {
     private Collator _collator;
 
     TestAnalyzer(Collator collator) {

Modified: lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/java/org/apache/lucene/analysis/morfologik/MorfologikAnalyzer.java Sat Oct  1 03:04:53 2011
@@ -20,10 +20,10 @@ package org.apache.lucene.analysis.morfo
 
 import java.io.Reader;
 
+import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.Tokenizer;
 import org.apache.lucene.analysis.standard.StandardFilter;
 import org.apache.lucene.analysis.standard.StandardTokenizer;
-import org.apache.lucene.analysis.ReusableAnalyzerBase;
 import org.apache.lucene.util.Version;
 
 import morfologik.stemming.PolishStemmer.DICTIONARY;
@@ -32,7 +32,7 @@ import morfologik.stemming.PolishStemmer
  * {@link org.apache.lucene.analysis.Analyzer} using Morfologik library.
  * @see <a href="http://morfologik.blogspot.com/">Morfologik project page</a>
  */
-public class MorfologikAnalyzer extends ReusableAnalyzerBase {
+public class MorfologikAnalyzer extends Analyzer {
 
   private final DICTIONARY dictionary;
   private final Version version;
@@ -62,14 +62,14 @@ public class MorfologikAnalyzer extends 
 
   /**
    * Creates a
-   * {@link org.apache.lucene.analysis.ReusableAnalyzerBase.TokenStreamComponents}
+   * {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    * which tokenizes all the text in the provided {@link Reader}.
    * 
    * @param field ignored field name
    * @param reader source of tokens
    * 
    * @return A
-   *         {@link org.apache.lucene.analysis.ReusableAnalyzerBase.TokenStreamComponents}
+   *         {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from an {@link StandardTokenizer} filtered with
    *         {@link StandardFilter} and {@link MorfologikFilter}.
    */

Modified: lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/test/org/apache/lucene/analysis/morfologik/TestMorfologikAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/test/org/apache/lucene/analysis/morfologik/TestMorfologikAnalyzer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/test/org/apache/lucene/analysis/morfologik/TestMorfologikAnalyzer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/morfologik/src/test/org/apache/lucene/analysis/morfologik/TestMorfologikAnalyzer.java Sat Oct  1 03:04:53 2011
@@ -59,13 +59,13 @@ public class TestMorfologikAnalyzer exte
   /** Test reuse of MorfologikFilter with leftover stems. */
   public final void testLeftoverStems() throws IOException {
     Analyzer a = getTestAnalyzer();
-    TokenStream ts_1 = a.reusableTokenStream("dummy", new StringReader("liście"));
+    TokenStream ts_1 = a.tokenStream("dummy", new StringReader("liście"));
     CharTermAttribute termAtt_1 = ts_1.getAttribute(CharTermAttribute.class);
     ts_1.reset();
     ts_1.incrementToken();
     assertEquals("first stream", "liść", termAtt_1.toString());
 
-    TokenStream ts_2 = a.reusableTokenStream("dummy", new StringReader("danych"));
+    TokenStream ts_2 = a.tokenStream("dummy", new StringReader("danych"));
     CharTermAttribute termAtt_2 = ts_2.getAttribute(CharTermAttribute.class);
     ts_2.reset();
     ts_2.incrementToken();
@@ -96,7 +96,7 @@ public class TestMorfologikAnalyzer exte
 
   /** Test morphosyntactic annotations. */
   public final void testPOSAttribute() throws IOException {
-    TokenStream ts = getTestAnalyzer().reusableTokenStream("dummy", new StringReader("liście"));
+    TokenStream ts = getTestAnalyzer().tokenStream("dummy", new StringReader("liście"));
 
     assertPOSToken(ts, "liść",  "subst:pl:acc.nom.voc:m3");
     assertPOSToken(ts, "list",  "subst:sg:loc.voc:m3");

Modified: lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/java/org/apache/lucene/analysis/cn/smart/SmartChineseAnalyzer.java Sat Oct  1 03:04:53 2011
@@ -25,7 +25,6 @@ import java.util.Collections;
 import java.util.Set;
 
 import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.analysis.ReusableAnalyzerBase;
 import org.apache.lucene.analysis.en.PorterStemFilter;
 import org.apache.lucene.analysis.util.WordlistLoader;
 import org.apache.lucene.analysis.TokenStream;
@@ -55,7 +54,7 @@ import org.apache.lucene.util.Version;
  * </p>
  * @lucene.experimental
  */
-public final class SmartChineseAnalyzer extends ReusableAnalyzerBase {
+public final class SmartChineseAnalyzer extends Analyzer {
 
   private final Set<?> stopWords;
   

Modified: lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseAnalyzer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseAnalyzer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/smartcn/src/test/org/apache/lucene/analysis/cn/smart/TestSmartChineseAnalyzer.java Sat Oct  1 03:04:53 2011
@@ -177,7 +177,7 @@ public class TestSmartChineseAnalyzer ex
       sb.append("我购买了道具和服装。");
     }
     Analyzer analyzer = new SmartChineseAnalyzer(TEST_VERSION_CURRENT);
-    TokenStream stream = analyzer.reusableTokenStream("", new StringReader(sb.toString()));
+    TokenStream stream = analyzer.tokenStream("", new StringReader(sb.toString()));
     stream.reset();
     while (stream.incrementToken()) {
     }
@@ -190,7 +190,7 @@ public class TestSmartChineseAnalyzer ex
       sb.append("我购买了道具和服装");
     }
     Analyzer analyzer = new SmartChineseAnalyzer(TEST_VERSION_CURRENT);
-    TokenStream stream = analyzer.reusableTokenStream("", new StringReader(sb.toString()));
+    TokenStream stream = analyzer.tokenStream("", new StringReader(sb.toString()));
     stream.reset();
     while (stream.incrementToken()) {
     }

Modified: lucene/dev/branches/lucene2621/modules/analysis/stempel/src/java/org/apache/lucene/analysis/pl/PolishAnalyzer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/analysis/stempel/src/java/org/apache/lucene/analysis/pl/PolishAnalyzer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/analysis/stempel/src/java/org/apache/lucene/analysis/pl/PolishAnalyzer.java (original)
+++ lucene/dev/branches/lucene2621/modules/analysis/stempel/src/java/org/apache/lucene/analysis/pl/PolishAnalyzer.java Sat Oct  1 03:04:53 2011
@@ -121,11 +121,11 @@ public final class PolishAnalyzer extend
 
   /**
    * Creates a
-   * {@link org.apache.lucene.analysis.ReusableAnalyzerBase.TokenStreamComponents}
+   * {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    * which tokenizes all the text in the provided {@link Reader}.
    * 
    * @return A
-   *         {@link org.apache.lucene.analysis.ReusableAnalyzerBase.TokenStreamComponents}
+   *         {@link org.apache.lucene.analysis.Analyzer.TokenStreamComponents}
    *         built from an {@link StandardTokenizer} filtered with
    *         {@link StandardFilter}, {@link LowerCaseFilter}, {@link StopFilter}
    *         , {@link KeywordMarkerFilter} if a stem exclusion set is

Modified: lucene/dev/branches/lucene2621/modules/benchmark/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/CHANGES.txt?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/CHANGES.txt (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/CHANGES.txt Sat Oct  1 03:04:53 2011
@@ -5,6 +5,10 @@ The Benchmark contrib package contains c
 For more information on past and future Lucene versions, please see:
 http://s.apache.org/luceneversions
 
+09/25/2011
+  LUCENE-3457: Upgrade commons-compress to 1.2 (and undo LUCENE-2980's workaround).
+  (Doron Cohen)
+  
 05/25/2011
   LUCENE-3137: ExtractReuters supports out-dir param suffixed by a slash. (Doron Cohen)
 

Modified: lucene/dev/branches/lucene2621/modules/benchmark/lib/commons-compress-NOTICE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/lib/commons-compress-NOTICE.txt?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/lib/commons-compress-NOTICE.txt (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/lib/commons-compress-NOTICE.txt Sat Oct  1 03:04:53 2011
@@ -1,5 +1,5 @@
 Apache Commons Compress
-Copyright 2002-2010 The Apache Software Foundation
+Copyright 2002-2011 The Apache Software Foundation
 
 This product includes software developed by
 The Apache Software Foundation (http://www.apache.org/).

Modified: lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/feeds/DocMaker.java Sat Oct  1 03:04:53 2011
@@ -103,11 +103,11 @@ public class DocMaker {
         numericFields = new HashMap<String,NumericField>();
         
         // Initialize the map with the default fields.
-        fields.put(BODY_FIELD, new Field(BODY_FIELD, bodyFt, ""));
-        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, ft, ""));
-        fields.put(DATE_FIELD, new Field(DATE_FIELD, ft, ""));
-        fields.put(ID_FIELD, new Field(ID_FIELD, StringField.TYPE_STORED, ""));
-        fields.put(NAME_FIELD, new Field(NAME_FIELD, ft, ""));
+        fields.put(BODY_FIELD, new Field(BODY_FIELD, "", bodyFt));
+        fields.put(TITLE_FIELD, new Field(TITLE_FIELD, "", ft));
+        fields.put(DATE_FIELD, new Field(DATE_FIELD, "", ft));
+        fields.put(ID_FIELD, new Field(ID_FIELD, "", StringField.TYPE_STORED));
+        fields.put(NAME_FIELD, new Field(NAME_FIELD, "", ft));
 
         numericFields.put(DATE_MSEC_FIELD, new NumericField(DATE_MSEC_FIELD));
         numericFields.put(TIME_SEC_FIELD, new NumericField(TIME_SEC_FIELD));
@@ -127,12 +127,12 @@ public class DocMaker {
      */
     Field getField(String name, FieldType ft) {
       if (!reuseFields) {
-        return new Field(name, ft, "");
+        return new Field(name, "", ft);
       }
       
       Field f = fields.get(name);
       if (f == null) {
-        f = new Field(name, ft, "");
+        f = new Field(name, "", ft);
         fields.put(name, f);
       }
       return f;

Modified: lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetLoadFieldSelectorTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetLoadFieldSelectorTask.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetLoadFieldSelectorTask.java (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/SearchTravRetLoadFieldSelectorTask.java Sat Oct  1 03:04:53 2011
@@ -23,7 +23,7 @@ import java.util.StringTokenizer;
 
 import org.apache.lucene.benchmark.byTask.PerfRunData;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.index.DocumentStoredFieldVisitor;
+import org.apache.lucene.document.DocumentStoredFieldVisitor;
 import org.apache.lucene.index.IndexReader;
 
 /**

Modified: lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/StreamUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/StreamUtils.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/StreamUtils.java (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/StreamUtils.java Sat Oct  1 03:04:53 2011
@@ -54,7 +54,7 @@ public class StreamUtils {
 		}
 		private InputStream inputStream(InputStream in) throws IOException {
 			try {
-				return csfType==null ? in : closableCompressorInputStream(this, in);
+				return csfType==null ? in : new CompressorStreamFactory().createCompressorInputStream(csfType, in);
 			} catch (CompressorException e) {
     		IOException ioe = new IOException(e.getMessage());
     		ioe.initCause(e);
@@ -80,7 +80,6 @@ public class StreamUtils {
     extensionToType.put(".gzip", Type.GZIP);
   }
   
-  
   /**
    * Returns an {@link InputStream} over the requested file. This method
    * attempts to identify the appropriate {@link InputStream} instance to return
@@ -106,32 +105,6 @@ public class StreamUtils {
 	}
   
   /**
-   * Wrap the compressor input stream so that calling close will also close
-   * the underlying stream - workaround for CommonsCompress bug (COMPRESS-127). 
-   */
-  private static InputStream closableCompressorInputStream(Type type, final InputStream is) throws CompressorException {
-    final InputStream delegee = new CompressorStreamFactory().createCompressorInputStream(type.csfType, is);
-    if (!Type.GZIP.equals(type)) {
-      return delegee; //compressor bug affects only gzip
-    }
-    return new InputStream() {
-			@Override	public int read() throws IOException { return delegee.read();	}
-			@Override	public int read(byte[] b) throws IOException { return delegee.read(b);	}
-			@Override	public int available() throws IOException {	return delegee.available();	}
-			@Override	public synchronized void mark(int readlimit) { delegee.mark(readlimit);	}
-			@Override	public boolean markSupported() { return delegee.markSupported(); }
-			@Override	public int read(byte[] b, int off, int len) throws IOException { return delegee.read(b, off, len); }
-			@Override	public synchronized void reset() throws IOException {	delegee.reset(); }
-			@Override	public long skip(long n) throws IOException {	return delegee.skip(n);	}
-			@Override	
-			public void close() throws IOException { 
-				delegee.close();
-				is.close();
-			}
-    };
-	}
-
-  /**
    * Returns an {@link OutputStream} over the requested file, identifying
    * the appropriate {@link OutputStream} instance similar to {@link #inputStream(File)}.
    */

Modified: lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java Sat Oct  1 03:04:53 2011
@@ -1008,7 +1008,7 @@ public class TestPerfTasksLogic extends 
     // Default analyzer, maxShingleSize, and outputUnigrams
     Benchmark benchmark = execBenchmark(getShingleConfig(""));
     benchmark.getRunData().getAnalyzer().tokenStream
-      ("bogus", new StringReader(text)).close();
+        ("bogus", new StringReader(text)).close();
     assertEqualShingle(benchmark.getRunData().getAnalyzer(), text,
                        new String[] {"one", "one two", "two", "two three",
                                      "three", "three four", "four", "four five",

Modified: lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java (original)
+++ lucene/dev/branches/lucene2621/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/WriteLineDocTaskTest.java Sat Oct  1 03:04:53 2011
@@ -161,6 +161,7 @@ public class WriteLineDocTaskTest extend
     		break;
     	case GZIP:
     		in = csFactory.createCompressorInputStream(CompressorStreamFactory.GZIP, in);
+                break;
     	case PLAIN:
     		break; // nothing to do
     	default:

Modified: lucene/dev/branches/lucene2621/modules/facet/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/build.xml?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/build.xml (original)
+++ lucene/dev/branches/lucene2621/modules/facet/build.xml Sat Oct  1 03:04:53 2011
@@ -29,6 +29,14 @@
   <property name="build.dir" location="build/" />
   <property name="dist.dir" location="dist/" />
 
+  <property name="examples.dir" location="src/examples"/>
+
+  <path id="classpath">
+    <path refid="base.classpath" />
+    <pathelement location="${build.dir}/classes/java" />
+    <pathelement location="${build.dir}/classes/examples" />
+  </path>
+    
   <path id="examples.classpath">
     <path refid="classpath" />
     <pathelement location="${build.dir}/classes/java" />
@@ -49,7 +57,7 @@
   </path>
 
   <target name="compile-examples" description="Compiles Facets examples">
-    <compile srcdir="src/examples" destdir="${build.dir}/classes/examples">
+    <compile srcdir="${examples.dir}" destdir="${build.dir}/classes/examples">
       <classpath refid="examples.classpath" />
     </compile>
   </target>
@@ -64,4 +72,22 @@
 
   <target name="jar-core" depends="common.jar-core,jar-examples" />
 
+  <target name="javadocs" depends="compile-core">
+	<sequential>
+      <mkdir dir="${javadoc.dir}/contrib-${name}"/>
+      <copy todir="${javadoc.dir}/contrib-${name}" file="docs/userguide.html" />
+      <!-- javadoc core classes -->
+      <invoke-javadoc
+        destdir="${javadoc.dir}/contrib-${name}"
+        title="${Name} ${version} contrib-${name} API">
+        <sources>
+          <link href=""/>
+          <packageset dir="${src.dir}"/>
+          <packageset dir="${examples.dir}"/>
+        </sources>
+      </invoke-javadoc>
+      <jarify basedir="${javadoc.dir}/contrib-${name}" destfile="${build.dir}/${final.name}-javadoc.jar"/>
+    </sequential>
+  </target>
+    
 </project>

Modified: lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/association/AssociationIndexer.java Sat Oct  1 03:04:53 2011
@@ -93,7 +93,7 @@ public class AssociationIndexer {
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, TextField.TYPE_STORED, SimpleUtils.docTitles[docNum]));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the

Modified: lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/merge/TaxonomyMergeUtils.java Sat Oct  1 03:04:53 2011
@@ -62,10 +62,10 @@ public class TaxonomyMergeUtils {
    * Merges the given taxonomy and index directories and commits the changes to
    * the given writers. This method uses {@link MemoryOrdinalMap} to store the
    * mapped ordinals. If you cannot afford the memory, you can use
-   * {@link #merge(Directory, Directory, OrdinalMap, IndexWriter, LuceneTaxonomyWriter)}
+   * {@link #merge(Directory, Directory, LuceneTaxonomyWriter.OrdinalMap, IndexWriter, LuceneTaxonomyWriter)}
    * by passing {@link DiskOrdinalMap}.
    * 
-   * @see #merge(Directory, Directory, OrdinalMap, IndexWriter, LuceneTaxonomyWriter)
+   * @see #merge(Directory, Directory, LuceneTaxonomyWriter.OrdinalMap, IndexWriter, LuceneTaxonomyWriter)
    */
   public static void merge(Directory srcIndexDir, Directory srcTaxDir,
                             IndexWriter destIndexWriter, 

Modified: lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLIndexer.java Sat Oct  1 03:04:53 2011
@@ -173,7 +173,7 @@ public class MultiCLIndexer {
       // create a plain Lucene document and add some regular Lucene fields
       // to it
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, TextField.TYPE_STORED, docTitles[docNum]));
+      doc.add(new Field(SimpleUtils.TITLE, docTitles[docNum], TextField.TYPE_STORED));
       doc.add(new TextField(SimpleUtils.TEXT, docTexts[docNum]));
 
       // finally add the document to the index

Modified: lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleIndexer.java Sat Oct  1 03:04:53 2011
@@ -70,7 +70,7 @@ public class SimpleIndexer {
 
       // create a plain Lucene document and add some regular Lucene fields to it 
       Document doc = new Document();
-      doc.add(new Field(SimpleUtils.TITLE, TextField.TYPE_STORED, SimpleUtils.docTitles[docNum]));
+      doc.add(new Field(SimpleUtils.TITLE, SimpleUtils.docTitles[docNum], TextField.TYPE_STORED));
       doc.add(new TextField(SimpleUtils.TEXT, SimpleUtils.docTexts[docNum]));
 
       // invoke the category document builder for adding categories to the document and,

Modified: lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/index/CategoryDocumentBuilder.java Sat Oct  1 03:04:53 2011
@@ -187,7 +187,7 @@ public class CategoryDocumentBuilder imp
       // super.build())
       FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
       ft.setOmitNorms(true);
-      fieldList.add(new Field(e.getKey(), ft, stream));
+      fieldList.add(new Field(e.getKey(), stream, ft));
     }
 
     return this;

Modified: lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/package.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/package.html?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/package.html (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/package.html Sat Oct  1 03:04:53 2011
@@ -3,6 +3,6 @@
     <title>Faceted Indexing and Search</title>
   </head>
   <body>
-    Provides faceted indexing and search capabilities.  
+    Provides faceted indexing and search capabilities. The <a href="../../../../userguide.html">userguide</a> is recommended for a start.  
   </body>
 </html>
\ No newline at end of file

Modified: lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/taxonomy/lucene/LuceneTaxonomyWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/taxonomy/lucene/LuceneTaxonomyWriter.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/taxonomy/lucene/LuceneTaxonomyWriter.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/java/org/apache/lucene/facet/taxonomy/lucene/LuceneTaxonomyWriter.java Sat Oct  1 03:04:53 2011
@@ -181,8 +181,8 @@ public class LuceneTaxonomyWriter implem
 
     FieldType ft = new FieldType(TextField.TYPE_UNSTORED);
     ft.setOmitNorms(true);
-    parentStreamField = new Field(Consts.FIELD_PAYLOADS, ft, parentStream);
-    fullPathField = new Field(Consts.FULL, StringField.TYPE_STORED, "");
+    parentStreamField = new Field(Consts.FIELD_PAYLOADS, parentStream, ft);
+    fullPathField = new Field(Consts.FULL, "", StringField.TYPE_STORED);
 
     this.nextID = indexWriter.maxDoc();
 

Modified: lucene/dev/branches/lucene2621/modules/facet/src/java/overview.html
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/java/overview.html?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/java/overview.html (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/java/overview.html Sat Oct  1 03:04:53 2011
@@ -21,6 +21,6 @@
     </title>
   </head>
   <body>
-  facet
+  Provides faceted indexing and search capabilities (checkout the <a href="userguide.html">userguide</a>).
   </body>
 </html>
\ No newline at end of file

Modified: lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestBase.java Sat Oct  1 03:04:53 2011
@@ -245,7 +245,7 @@ public abstract class FacetTestBase exte
     CategoryDocumentBuilder builder = new CategoryDocumentBuilder(tw, iParams);
     builder.setCategoryPaths(categories);
     builder.build(d);
-    d.add(new Field("content", TextField.TYPE_STORED, content));
+    d.add(new Field("content", content, TextField.TYPE_STORED));
     iw.addDocument(d);
   }
   

Modified: lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java Sat Oct  1 03:04:53 2011
@@ -128,7 +128,7 @@ public class FacetTestUtils {
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", TextField.TYPE_STORED, "alpha"));
+    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
     iw.addDocument(d);
   }
 

Modified: lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/CategoryListIteratorTest.java Sat Oct  1 03:04:53 2011
@@ -137,7 +137,7 @@ public class CategoryListIteratorTest ex
     DataTokenStream dts2 = new DataTokenStream("2",new SortingIntEncoder(
         new UniqueValuesIntEncoder(new DGapIntEncoder(new VInt8IntEncoder()))));
     // this test requires that no payloads ever be randomly present!
-    final Analyzer noPayloadsAnalyzer = new ReusableAnalyzerBase() {
+    final Analyzer noPayloadsAnalyzer = new Analyzer() {
       @Override
       public TokenStreamComponents createComponents(String fieldName, Reader reader) {
         return new TokenStreamComponents(new MockTokenizer(reader, MockTokenizer.KEYWORD, false));

Modified: lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java Sat Oct  1 03:04:53 2011
@@ -328,7 +328,7 @@ public class TestTopKInEachNodeResultHan
     cps.add(cp);
     Document d = new Document();
     new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
-    d.add(new Field("content", TextField.TYPE_STORED, "alpha"));
+    d.add(new Field("content", "alpha", TextField.TYPE_STORED));
     iw.addDocument(d);
   }
 

Modified: lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java (original)
+++ lucene/dev/branches/lucene2621/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java Sat Oct  1 03:04:53 2011
@@ -210,7 +210,7 @@ public class TestScoredDocIDsUtils exten
         // assert that those docs are not returned by all-scored-doc-IDs.
         FieldType ft = new FieldType();
         ft.setStored(true);
-        doc.add(new Field("del", ft, Integer.toString(docNum)));
+        doc.add(new Field("del", Integer.toString(docNum), ft));
       }
 
       if (haveAlpha(docNum)) {

Modified: lucene/dev/branches/lucene2621/modules/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java (original)
+++ lucene/dev/branches/lucene2621/modules/grouping/src/java/org/apache/lucene/search/grouping/AbstractFirstPassGroupingCollector.java Sat Oct  1 03:04:53 2011
@@ -213,9 +213,7 @@ abstract public class AbstractFirstPassG
 
       // We already tested that the document is competitive, so replace
       // the bottom group with this new group.
-
-      // java 6-only: final CollectedSearchGroup bottomGroup = orderedGroups.pollLast();
-      final CollectedSearchGroup<GROUP_VALUE_TYPE> bottomGroup = pollLast();
+      final CollectedSearchGroup<GROUP_VALUE_TYPE> bottomGroup = orderedGroups.pollLast();
       assert orderedGroups.size() == topNGroups -1;
 
       groupMap.remove(bottomGroup.groupValue);
@@ -351,13 +349,5 @@ abstract public class AbstractFirstPassG
    */
   protected abstract GROUP_VALUE_TYPE copyDocGroupValue(GROUP_VALUE_TYPE groupValue, GROUP_VALUE_TYPE reuse);
 
-
-
-  protected CollectedSearchGroup<GROUP_VALUE_TYPE> pollLast() {
-    // java 6-only: final CollectedSearchGroup bottomGroup = orderedGroups.pollLast();
-    final CollectedSearchGroup<GROUP_VALUE_TYPE> bottomGroup = orderedGroups.last();
-    orderedGroups.remove(bottomGroup);
-    return bottomGroup;
-  }
 }
 

Modified: lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TermAllGroupsCollectorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TermAllGroupsCollectorTest.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TermAllGroupsCollectorTest.java (original)
+++ lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TermAllGroupsCollectorTest.java Sat Oct  1 03:04:53 2011
@@ -45,51 +45,51 @@ public class TermAllGroupsCollectorTest 
                                                     new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     // 0
     Document doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "random text"));
-    doc.add(new Field("id", customType, "1"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random text blob"));
-    doc.add(new Field("id", customType, "2"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text blob", TextField.TYPE_STORED));
+    doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random textual data"));
-    doc.add(new Field("id", customType, "3"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
     w.commit(); // To ensure a second segment
 
     // 3
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author2"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some random text"));
-    doc.add(new Field("id", customType, "4"));
+    doc.add(new Field(groupField, "author2", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author3"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random text"));
-    doc.add(new Field("id", customType, "5"));
+    doc.add(new Field(groupField, "author3", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author3"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "random blob"));
-    doc.add(new Field("id", customType, "6"));
+    doc.add(new Field(groupField, "author3", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random blob", TextField.TYPE_STORED));
+    doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", TextField.TYPE_STORED, "random word stuck in alot of other text"));
-    doc.add(new Field("id", customType, "6"));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());

Modified: lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java (original)
+++ lucene/dev/branches/lucene2621/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java Sat Oct  1 03:04:53 2011
@@ -61,50 +61,50 @@ public class TestGrouping extends Lucene
                                                     new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     // 0
     Document doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "random text"));
-    doc.add(new Field("id", customType, "1"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "1", customType));
     w.addDocument(doc);
 
     // 1
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random text"));
-    doc.add(new Field("id", customType, "2"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "2", customType));
     w.addDocument(doc);
 
     // 2
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author1"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random textual data"));
-    doc.add(new Field("id", customType, "3"));
+    doc.add(new Field(groupField, "author1", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random textual data", TextField.TYPE_STORED));
+    doc.add(new Field("id", "3", customType));
     w.addDocument(doc);
 
     // 3
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author2"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some random text"));
-    doc.add(new Field("id", customType, "4"));
+    doc.add(new Field(groupField, "author2", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "4", customType));
     w.addDocument(doc);
 
     // 4
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author3"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "some more random text"));
-    doc.add(new Field("id", customType, "5"));
+    doc.add(new Field(groupField, "author3", TextField.TYPE_STORED));
+    doc.add(new Field("content", "some more random text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "5", customType));
     w.addDocument(doc);
 
     // 5
     doc = new Document();
-    doc.add(new Field(groupField, TextField.TYPE_STORED, "author3"));
-    doc.add(new Field("content", TextField.TYPE_STORED, "random"));
-    doc.add(new Field("id", customType, "6"));
+    doc.add(new Field(groupField, "author3", TextField.TYPE_STORED));
+    doc.add(new Field("content", "random", TextField.TYPE_STORED));
+    doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     // 6 -- no author field
     doc = new Document();
-    doc.add(new Field("content", TextField.TYPE_STORED,  "random word stuck in alot of other text"));
-    doc.add(new Field("id", customType, "6"));
+    doc.add(new Field("content", "random word stuck in alot of other text", TextField.TYPE_STORED));
+    doc.add(new Field("id", "6", customType));
     w.addDocument(doc);
 
     IndexSearcher indexSearcher = new IndexSearcher(w.getReader());

Modified: lucene/dev/branches/lucene2621/modules/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java (original)
+++ lucene/dev/branches/lucene2621/modules/join/src/java/org/apache/lucene/search/join/BlockJoinQuery.java Sat Oct  1 03:04:53 2011
@@ -38,6 +38,7 @@ import org.apache.lucene.search.Scorer.C
 import org.apache.lucene.search.Weight;
 import org.apache.lucene.search.grouping.TopGroups;
 import org.apache.lucene.util.ArrayUtil;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.FixedBitSet;
 
 /**
@@ -146,9 +147,10 @@ public class BlockJoinQuery extends Quer
     }
 
     @Override
-    public Scorer scorer(AtomicReaderContext readerContext, ScorerContext context) throws IOException {
+    public Scorer scorer(AtomicReaderContext readerContext, boolean scoreDocsInOrder,
+        boolean topScorer, Bits acceptDocs) throws IOException {
       // Pass scoreDocsInOrder true, topScorer false to our sub:
-      final Scorer childScorer = childWeight.scorer(readerContext, ScorerContext.def().scoreDocsInOrder(true).topScorer(false));
+      final Scorer childScorer = childWeight.scorer(readerContext, true, false, acceptDocs);
 
       if (childScorer == null) {
         // No matches
@@ -322,6 +324,9 @@ public class BlockJoinQuery extends Quer
         return parentDoc = NO_MORE_DOCS;
       }
 
+      // Every parent must have at least one child:
+      assert parentTarget != 0;
+
       final int prevParentDoc = parentBits.prevSetBit(parentTarget-1);
 
       //System.out.println("  rolled back to prevParentDoc=" + prevParentDoc + " vs parentDoc=" + parentDoc);

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java Sat Oct  1 03:04:53 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.queries;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Iterator;
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
@@ -38,11 +39,9 @@ import org.apache.lucene.util.FixedBitSe
  * The resulting Filter is NOT'd with the NOT Filters
  * The resulting Filter is AND'd with the MUST Filters
  */
-public class BooleanFilter extends Filter {
+public class BooleanFilter extends Filter implements Iterable<FilterClause> {
 
-  List<Filter> shouldFilters = null;
-  List<Filter> notFilters = null;
-  List<Filter> mustFilters = null;
+  private final List<FilterClause> clauses = new ArrayList<FilterClause>();
 
   /**
    * Returns the a DocIdSetIterator representing the Boolean composition
@@ -52,9 +51,10 @@ public class BooleanFilter extends Filte
   public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
     FixedBitSet res = null;
     final IndexReader reader = context.reader;
-    if (shouldFilters != null) {
-      for (int i = 0; i < shouldFilters.size(); i++) {
-        final DocIdSetIterator disi = getDISI(shouldFilters, i, context);
+    
+    for (final FilterClause fc : clauses) {
+      if (fc.getOccur() == Occur.SHOULD) {
+        final DocIdSetIterator disi = getDISI(fc.getFilter(), context);
         if (disi == null) continue;
         if (res == null) {
           res = new FixedBitSet(reader.maxDoc());
@@ -63,22 +63,22 @@ public class BooleanFilter extends Filte
       }
     }
     
-    if (notFilters != null) {
-      for (int i = 0; i < notFilters.size(); i++) {
+    for (final FilterClause fc : clauses) {
+      if (fc.getOccur() == Occur.MUST_NOT) {
         if (res == null) {
           res = new FixedBitSet(reader.maxDoc());
           res.set(0, reader.maxDoc()); // NOTE: may set bits on deleted docs
         }
-        final DocIdSetIterator disi = getDISI(notFilters, i, context);
+        final DocIdSetIterator disi = getDISI(fc.getFilter(), context);
         if (disi != null) {
           res.andNot(disi);
         }
       }
     }
     
-    if (mustFilters != null) {
-      for (int i = 0; i < mustFilters.size(); i++) {
-        final DocIdSetIterator disi = getDISI(mustFilters, i, context);
+    for (final FilterClause fc : clauses) {
+      if (fc.getOccur() == Occur.MUST) {
+        final DocIdSetIterator disi = getDISI(fc.getFilter(), context);
         if (disi == null) {
           return DocIdSet.EMPTY_DOCIDSET; // no documents can match
         }
@@ -94,35 +94,39 @@ public class BooleanFilter extends Filte
     return res != null ? res : DocIdSet.EMPTY_DOCIDSET;
   }
 
+  private static DocIdSetIterator getDISI(Filter filter, AtomicReaderContext context)
+      throws IOException {
+    final DocIdSet set = filter.getDocIdSet(context);
+    return (set == null || set == DocIdSet.EMPTY_DOCIDSET) ? null : set.iterator();
+  }
+
   /**
   * Adds a new FilterClause to the Boolean Filter container
   * @param filterClause A FilterClause object containing a Filter and an Occur parameter
   */
   public void add(FilterClause filterClause) {
-    if (filterClause.getOccur().equals(Occur.MUST)) {
-      if (mustFilters == null) {
-        mustFilters = new ArrayList<Filter>();
-      }
-      mustFilters.add(filterClause.getFilter());
-    } else if (filterClause.getOccur().equals(Occur.SHOULD)) {
-      if (shouldFilters == null) {
-        shouldFilters = new ArrayList<Filter>();
-      }
-      shouldFilters.add(filterClause.getFilter());
-    } else if (filterClause.getOccur().equals(Occur.MUST_NOT)) {
-      if (notFilters == null) {
-        notFilters = new ArrayList<Filter>();
-      }
-      notFilters.add(filterClause.getFilter());
-    }
+    clauses.add(filterClause);
   }
-
-  private DocIdSetIterator getDISI(List<Filter> filters, int index, AtomicReaderContext context)
-      throws IOException {
-    final DocIdSet set = filters.get(index).getDocIdSet(context);
-    return (set == null) ? null : set.iterator();
+  
+  public final void add(Filter filter, Occur occur) {
+    add(new FilterClause(filter, occur));
   }
   
+  /**
+  * Returns the list of clauses
+  */
+  public List<FilterClause> clauses() {
+    return clauses;
+  }
+  
+  /** Returns an iterator on the clauses in this query. It implements the {@link Iterable} interface to
+   * make it possible to do:
+   * <pre>for (FilterClause clause : booleanFilter) {}</pre>
+   */
+  public final Iterator<FilterClause> iterator() {
+    return clauses().iterator();
+  }
+
   @Override
   public boolean equals(Object obj) {
     if (this == obj) {
@@ -133,44 +137,26 @@ public class BooleanFilter extends Filte
       return false;
     }
 
-    BooleanFilter other = (BooleanFilter)obj;
-    return equalFilters(notFilters, other.notFilters)
-        && equalFilters(mustFilters, other.mustFilters)
-        && equalFilters(shouldFilters, other.shouldFilters);
-  }
-
-  private boolean equalFilters(List<Filter> filters1, List<Filter> filters2) {
-    return (filters1 == filters2) || ((filters1 != null) && filters1.equals(filters2));
+    final BooleanFilter other = (BooleanFilter)obj;
+    return clauses.equals(other.clauses);
   }
 
   @Override
   public int hashCode() {
-    int hash = 7;
-    hash = 31 * hash + (null == mustFilters ? 0 : mustFilters.hashCode());
-    hash = 31 * hash + (null == notFilters ? 0 : notFilters.hashCode());
-    hash = 31 * hash + (null == shouldFilters ? 0 : shouldFilters.hashCode());
-    return hash;
+    return 657153718 ^ clauses.hashCode();
   }
   
-  /** Prints a user-readable version of this query. */
+  /** Prints a user-readable version of this Filter. */
   @Override
   public String toString() {
-    StringBuilder buffer = new StringBuilder();
-    buffer.append("BooleanFilter(");
-    appendFilters(shouldFilters, "", buffer);
-    appendFilters(mustFilters, "+", buffer);
-    appendFilters(notFilters, "-", buffer);
-    buffer.append(")");
-    return buffer.toString();
-  }
-  
-  private void appendFilters(List<Filter> filters, String occurString, StringBuilder buffer) {
-    if (filters != null) {
-      for (Filter filter : filters) {
+    final StringBuilder buffer = new StringBuilder("BooleanFilter(");
+    final int minLen = buffer.length();
+    for (final FilterClause c : clauses) {
+      if (buffer.length() > minLen) {
         buffer.append(' ');
-        buffer.append(occurString);
-        buffer.append(filter.toString());
       }
+      buffer.append(c);
     }
-  }    
+    return buffer.append(')').toString();
+  }
 }

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/CustomScoreQuery.java Sat Oct  1 03:04:53 2011
@@ -30,6 +30,7 @@ import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Weight;
 import org.apache.lucene.search.Scorer;
 import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.ToStringUtils;
 
 /**
@@ -224,19 +225,20 @@ public class CustomScoreQuery extends Qu
     }
 
     @Override
-    public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext) throws IOException {
+    public Scorer scorer(AtomicReaderContext context, boolean scoreDocsInOrder,
+        boolean topScorer, Bits acceptDocs) throws IOException {
       // Pass true for "scoresDocsInOrder", because we
       // require in-order scoring, even if caller does not,
       // since we call advance on the valSrcScorers.  Pass
       // false for "topScorer" because we will not invoke
       // score(Collector) on these scorers:
-      Scorer subQueryScorer = subQueryWeight.scorer(context, ScorerContext.def());
+      Scorer subQueryScorer = subQueryWeight.scorer(context, true, false, acceptDocs);
       if (subQueryScorer == null) {
         return null;
       }
       Scorer[] valSrcScorers = new Scorer[valSrcWeights.length];
       for(int i = 0; i < valSrcScorers.length; i++) {
-         valSrcScorers[i] = valSrcWeights[i].scorer(context, scorerContext.scoreDocsInOrder(true));
+         valSrcScorers[i] = valSrcWeights[i].scorer(context, true, topScorer, acceptDocs);
       }
       return new CustomScorer(CustomScoreQuery.this.getCustomScoreProvider(context), this, getBoost(), subQueryScorer, valSrcScorers);
     }

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/FilterClause.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/FilterClause.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/FilterClause.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/FilterClause.java Sat Oct  1 03:04:53 2011
@@ -26,36 +26,57 @@ import org.apache.lucene.search.Filter;
  * (Follows the boolean logic in BooleanClause for composition 
  * of queries.)
  */
-public class FilterClause {
+public final class FilterClause {
 
-	private final Occur occur;
-	private final Filter filter;
+  private final Occur occur;
+  private final Filter filter;
 
-	/**
-	 * Create a new FilterClause
-	 * @param filter A Filter object containing a BitSet
-	 * @param occur A parameter implementation indicating SHOULD, MUST or MUST NOT
-	 */
-	
-	public FilterClause(Filter filter, Occur occur) {
-		this.occur = occur;
-		this.filter = filter;
-	}
-
-	/**
-	 * Returns this FilterClause's filter
-	 * @return A Filter object
-	 */
-	public Filter getFilter() {
-		return filter;
-	}
-
-	/**
-	 * Returns this FilterClause's occur parameter
-	 * @return An Occur object
-	 */
-	public Occur getOccur() {
-		return occur;
-	}
+  /**
+   * Create a new FilterClause
+   * @param filter A Filter object containing a BitSet
+   * @param occur A parameter implementation indicating SHOULD, MUST or MUST NOT
+   */
+
+  public FilterClause(Filter filter, Occur occur) {
+    this.occur = occur;
+    this.filter = filter;
+  }
+
+  /**
+   * Returns this FilterClause's filter
+   * @return A Filter object
+   */
+  public Filter getFilter() {
+    return filter;
+  }
+
+  /**
+   * Returns this FilterClause's occur parameter
+   * @return An Occur object
+   */
+  public Occur getOccur() {
+    return occur;
+  }
+
+  @Override
+  public boolean equals(Object o) {
+    if (o == this)
+      return true;
+    if (o == null || !(o instanceof FilterClause))
+      return false;
+    final FilterClause other = (FilterClause)o;
+    return this.filter.equals(other.filter)
+      && this.occur == other.occur;
+  }
+
+  @Override
+  public int hashCode() {
+    return filter.hashCode() ^ occur.hashCode();
+  }
+
+  @Override
+  public String toString() {
+    return occur.toString() + filter.toString();
+  }
 
 }

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/BoostedQuery.java Sat Oct  1 03:04:53 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.queries.functi
 import org.apache.lucene.search.*;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.ToStringUtils;
 
 import java.io.IOException;
@@ -91,8 +92,10 @@ public class BoostedQuery extends Query 
     }
 
     @Override
-    public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext) throws IOException {
-      Scorer subQueryScorer = qWeight.scorer(context, ScorerContext.def());
+    public Scorer scorer(AtomicReaderContext context, boolean scoreDocsInOrder,
+        boolean topScorer, Bits acceptDocs) throws IOException {
+      // we are gonna advance() the subscorer
+      Scorer subQueryScorer = qWeight.scorer(context, true, false, acceptDocs);
       if(subQueryScorer == null) {
         return null;
       }

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/FunctionQuery.java Sat Oct  1 03:04:53 2011
@@ -89,13 +89,14 @@ public class FunctionQuery extends Query
     }
 
     @Override
-    public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext) throws IOException {
-      return new AllScorer(context, this, queryWeight);
+    public Scorer scorer(AtomicReaderContext context, boolean scoreDocsInOrder,
+        boolean topScorer, Bits acceptDocs) throws IOException {
+      return new AllScorer(context, acceptDocs, this, queryWeight);
     }
 
     @Override
     public Explanation explain(AtomicReaderContext context, int doc) throws IOException {
-      return ((AllScorer)scorer(context, ScorerContext.def().scoreDocsInOrder(true).topScorer(true))).explain(doc);
+      return ((AllScorer)scorer(context, true, true, context.reader.getLiveDocs())).explain(doc);
     }
   }
 
@@ -106,18 +107,15 @@ public class FunctionQuery extends Query
     final float qWeight;
     int doc=-1;
     final DocValues vals;
-    final boolean hasDeletions;
     final Bits liveDocs;
 
-    public AllScorer(AtomicReaderContext context, FunctionWeight w, float qWeight) throws IOException {
+    public AllScorer(AtomicReaderContext context, Bits acceptDocs, FunctionWeight w, float qWeight) throws IOException {
       super(w);
       this.weight = w;
       this.qWeight = qWeight;
       this.reader = context.reader;
       this.maxDoc = reader.maxDoc();
-      this.hasDeletions = reader.hasDeletions();
-      this.liveDocs = MultiFields.getLiveDocs(reader);
-      assert !hasDeletions || liveDocs != null;
+      this.liveDocs = acceptDocs;
       vals = func.getValues(weight.context, context);
     }
 
@@ -137,7 +135,7 @@ public class FunctionQuery extends Query
         if (doc>=maxDoc) {
           return doc=NO_MORE_DOCS;
         }
-        if (hasDeletions && !liveDocs.get(doc)) continue;
+        if (liveDocs != null && !liveDocs.get(doc)) continue;
         return doc;
       }
     }

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/function/valuesource/QueryValueSource.java Sat Oct  1 03:04:53 2011
@@ -22,7 +22,7 @@ import org.apache.lucene.queries.functio
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.docvalues.FloatDocValues;
 import org.apache.lucene.search.*;
-import org.apache.lucene.search.Weight.ScorerContext;
+import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.ReaderUtil;
 import org.apache.lucene.util.mutable.MutableValue;
 import org.apache.lucene.util.mutable.MutableValueFloat;
@@ -77,6 +77,7 @@ public class QueryValueSource extends Va
 
 class QueryDocValues extends FloatDocValues {
   final AtomicReaderContext readerContext;
+  final Bits acceptDocs;
   final Weight weight;
   final float defVal;
   final Map fcontext;
@@ -95,6 +96,7 @@ class QueryDocValues extends FloatDocVal
     super(vs);
 
     this.readerContext = readerContext;
+    this.acceptDocs = readerContext.reader.getLiveDocs();
     this.defVal = vs.defVal;
     this.q = vs.q;
     this.fcontext = fcontext;
@@ -121,7 +123,7 @@ class QueryDocValues extends FloatDocVal
     try {
       if (doc < lastDocRequested) {
         if (noMatches) return defVal;
-        scorer = weight.scorer(readerContext, ScorerContext.def());
+        scorer = weight.scorer(readerContext, true, false, acceptDocs);
         if (scorer==null) {
           noMatches = true;
           return defVal;
@@ -152,7 +154,7 @@ class QueryDocValues extends FloatDocVal
     try {
       if (doc < lastDocRequested) {
         if (noMatches) return false;
-        scorer = weight.scorer(readerContext, ScorerContext.def());
+        scorer = weight.scorer(readerContext, true, false, acceptDocs);
         scorerDoc = -1;
         if (scorer==null) {
           noMatches = true;
@@ -210,7 +212,7 @@ class QueryDocValues extends FloatDocVal
             mval.exists = false;
             return;
           }
-          scorer = weight.scorer(readerContext, ScorerContext.def());
+          scorer = weight.scorer(readerContext, true, false, acceptDocs);
           scorerDoc = -1;
           if (scorer==null) {
             noMatches = true;

Modified: lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java?rev=1177888&r1=1177887&r2=1177888&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java (original)
+++ lucene/dev/branches/lucene2621/modules/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThis.java Sat Oct  1 03:04:53 2011
@@ -707,12 +707,10 @@ public final class MoreLikeThis {
       if (vector == null) {
         Document d = ir.document(docNum);
         IndexableField fields[] = d.getFields(fieldName);
-        if (fields != null) {
-          for (int j = 0; j < fields.length; j++) {
-            final String stringValue = fields[j].stringValue();
-            if (stringValue != null) {
-              addTermFrequencies(new StringReader(stringValue), termFreqMap, fieldName);
-            }
+        for (int j = 0; j < fields.length; j++) {
+          final String stringValue = fields[j].stringValue();
+          if (stringValue != null) {
+            addTermFrequencies(new StringReader(stringValue), termFreqMap, fieldName);
           }
         }
       } else {
@@ -765,7 +763,7 @@ public final class MoreLikeThis {
       throw new UnsupportedOperationException("To use MoreLikeThis without " +
           "term vectors, you must provide an Analyzer");
     }
-    TokenStream ts = analyzer.reusableTokenStream(fieldName, r);
+    TokenStream ts = analyzer.tokenStream(fieldName, r);
     int tokenCount = 0;
     // for every token
     CharTermAttribute termAtt = ts.addAttribute(CharTermAttribute.class);