You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/01/24 15:32:04 UTC

svn commit: r1062798 [1/3] - in /lucene/dev/branches/bulkpostings: ./ dev-tools/eclipse/ dev-tools/maven/ dev-tools/maven/lucene/ dev-tools/maven/lucene/contrib/ dev-tools/maven/lucene/contrib/ant/ dev-tools/maven/lucene/contrib/db/ dev-tools/maven/luc...

Author: simonw
Date: Mon Jan 24 14:31:59 2011
New Revision: 1062798

URL: http://svn.apache.org/viewvc?rev=1062798&view=rev
Log:
merged revision 106207 to 1062775

Added:
    lucene/dev/branches/bulkpostings/dev-tools/eclipse/lucene-codestyle.xml
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/eclipse/lucene-codestyle.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/ant/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/ant/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/bdb-je/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/db/bdb-je/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/bdb/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/db/bdb/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/db/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/demo/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/demo/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/highlighter/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/highlighter/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/instantiated/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/instantiated/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/lucli/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/lucli/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/memory/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/memory/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/misc/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/misc/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/queries/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/queries/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/queryparser/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/queryparser/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/spatial/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/spatial/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/spellchecker/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/spellchecker/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/swing/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/swing/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/wordnet/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/wordnet/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/xml-query-parser/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/contrib/xml-query-parser/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/src/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/lucene/src/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/common/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/common/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/icu/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/icu/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/phonetic/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/phonetic/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/smartcn/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/smartcn/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/stempel/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/analysis/stempel/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/benchmark/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/benchmark/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/modules/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/clustering/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/clustering/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/src/extras/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/dataimporthandler/src/extras/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/src/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/dataimporthandler/src/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/extraction/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/extraction/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/contrib/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/src/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/solrj/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/src/solrj/pom.xml.template
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/webapp/pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/dev-tools/maven/solr/src/webapp/pom.xml.template
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
      - copied unchanged from r1062778, lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/   (props changed)
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/CHANGES.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/CHANGES.txt
    lucene/dev/branches/bulkpostings/solr/contrib/uima/README.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/README.txt
    lucene/dev/branches/bulkpostings/solr/contrib/uima/build.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/build.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/commons-digester-2.0.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/commons-digester-2.0.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/commons-lang-2.4.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/commons-lang-2.4.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/uima-an-alchemy.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/uima-an-alchemy.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/uima-an-calais.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/uima-an-calais.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/uima-an-tagger.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/uima-an-tagger.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/uima-an-wst.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/uima-an-wst.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/lib/uima-core.jar
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/lib/uima-core.jar
    lucene/dev/branches/bulkpostings/solr/contrib/uima/solr-uima-pom.xml.template
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/solr-uima-pom.xml.template
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfiguration.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/SolrUIMAConfigurationReader.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAToSolrMapper.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAToSolrMapper.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessor.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorFactory.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorFactory.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProvider.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProvider.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/AEProviderFactory.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/java/org/apache/solr/uima/processor/ae/OverridingParamsAEProvider.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/AggregateSentenceAE.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/AggregateSentenceAE.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/ExtServicesAE.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/ExtServicesAE.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/HmmTagger.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/HmmTagger.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/OpenCalaisAnnotator.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/OpenCalaisAnnotator.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/OverridingParamsExtServicesAE.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/OverridingParamsExtServicesAE.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextCategorizationAEDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextCategorizationAEDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextConceptTaggingAEDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextConceptTaggingAEDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextKeywordExtractionAEDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextKeywordExtractionAEDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextLanguageDetectionAEDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextLanguageDetectionAEDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextRankedEntityExtractionAEDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/TextRankedEntityExtractionAEDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/WhitespaceTokenizer.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/WhitespaceTokenizer.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/org/apache/uima/desc/baseAlchemyTypeSystemDescriptor.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/org/apache/uima/desc/baseAlchemyTypeSystemDescriptor.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/solr/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/solr/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/solr/conf/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/solr/conf/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/solr/conf/aggregate-uima-config.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/solr/conf/aggregate-uima-config.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/main/resources/solr/conf/uima-fields.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/main/resources/solr/conf/uima-fields.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/apache/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/apache/solr/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/apache/solr/uima/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/java/org/apache/solr/uima/processor/UIMAUpdateRequestProcessorTest.java
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/
      - copied from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/protwords.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/protwords.txt
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/schema.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/solrconfig.xml
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/spellings.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/spellings.txt
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/stopwords.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/stopwords.txt
    lucene/dev/branches/bulkpostings/solr/contrib/uima/src/test/resources/solr-uima/conf/synonyms.txt
      - copied unchanged from r1062778, lucene/dev/trunk/solr/contrib/uima/src/test/resources/solr-uima/conf/synonyms.txt
Removed:
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/ant/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/bdb-je/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/bdb/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/db/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/demo/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/highlighter/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/instantiated/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/lucli/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/memory/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/misc/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/queries/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/queryparser/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/spatial/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/spellchecker/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/swing/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/wordnet/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/contrib/xml-query-parser/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/lucene/src/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/common/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/icu/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/phonetic/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/smartcn/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/analysis/stempel/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/benchmark/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/modules/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/analysis-extras/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/clustering/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/src/extras/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/dataimporthandler/src/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/extraction/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/contrib/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/solrj/pom.xml
    lucene/dev/branches/bulkpostings/dev-tools/maven/solr/src/webapp/pom.xml
Modified:
    lucene/dev/branches/bulkpostings/   (props changed)
    lucene/dev/branches/bulkpostings/build.xml
    lucene/dev/branches/bulkpostings/dev-tools/eclipse/dot.classpath
    lucene/dev/branches/bulkpostings/lucene/   (props changed)
    lucene/dev/branches/bulkpostings/lucene/CHANGES.txt
    lucene/dev/branches/bulkpostings/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/FieldsReader.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentReader.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosReader.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosWriter.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/CachingSpanFilter.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanFilter.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanQueryFilter.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNearQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanWeight.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/Spans.java
    lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/util/Constants.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/index/TestNRTThreads.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/JustCompileSearch.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/TestMultiPhraseQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/TestPositionIncrement.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/TestSpanQueryFilter.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/payloads/PayloadHelper.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/payloads/TestPayloadTermQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/TestBasics.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/TestFieldMaskingSpanQuery.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/TestNearSpansOrdered.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
    lucene/dev/branches/bulkpostings/lucene/src/test/org/apache/lucene/search/spans/TestSpans.java
    lucene/dev/branches/bulkpostings/modules/   (props changed)
    lucene/dev/branches/bulkpostings/modules/analysis/common/build.xml
    lucene/dev/branches/bulkpostings/modules/analysis/smartcn/build.xml
    lucene/dev/branches/bulkpostings/modules/analysis/stempel/build.xml
    lucene/dev/branches/bulkpostings/modules/benchmark/build.xml
    lucene/dev/branches/bulkpostings/modules/build.xml
    lucene/dev/branches/bulkpostings/solr/   (props changed)
    lucene/dev/branches/bulkpostings/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/bulkpostings/solr/KEYS   (props changed)
    lucene/dev/branches/bulkpostings/solr/LICENSE.txt   (props changed)
    lucene/dev/branches/bulkpostings/solr/NOTICE.txt   (props changed)
    lucene/dev/branches/bulkpostings/solr/README.txt   (props changed)
    lucene/dev/branches/bulkpostings/solr/build.xml   (contents, props changed)
    lucene/dev/branches/bulkpostings/solr/client/   (props changed)
    lucene/dev/branches/bulkpostings/solr/common-build.xml   (contents, props changed)
    lucene/dev/branches/bulkpostings/solr/contrib/   (props changed)
    lucene/dev/branches/bulkpostings/solr/contrib/dataimporthandler/CHANGES.txt
    lucene/dev/branches/bulkpostings/solr/example/   (props changed)
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/db/conf/   (props changed)
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/db/conf/solrconfig.xml
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/rss/conf/rss-data-config.xml
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/rss/conf/schema.xml
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
    lucene/dev/branches/bulkpostings/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
    lucene/dev/branches/bulkpostings/solr/lib/   (props changed)
    lucene/dev/branches/bulkpostings/solr/site/   (props changed)
    lucene/dev/branches/bulkpostings/solr/src/   (props changed)
    lucene/dev/branches/bulkpostings/solr/src/java/org/apache/solr/core/CoreContainer.java
    lucene/dev/branches/bulkpostings/solr/testlogging.properties   (props changed)

Modified: lucene/dev/branches/bulkpostings/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/build.xml?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/build.xml (original)
+++ lucene/dev/branches/bulkpostings/build.xml Mon Jan 24 14:31:59 2011
@@ -38,10 +38,15 @@
     </sequential>
   </target>
 
+  <property name="version" value="4.0-SNAPSHOT"/>
   <target name="get-maven-poms" 
           description="Copy Maven POMs from dev-tools/maven/ to their target locations">
     <copy todir=".">
       <fileset dir="${basedir}/dev-tools/maven"/>
+      <filterset begintoken="@" endtoken="@">
+        <filter token="version" value="${version}"/>
+      </filterset>
+      <globmapper from="*.template" to="*"/>
     </copy>
   </target>
 

Modified: lucene/dev/branches/bulkpostings/dev-tools/eclipse/dot.classpath
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/dev-tools/eclipse/dot.classpath?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/dev-tools/eclipse/dot.classpath (original)
+++ lucene/dev/branches/bulkpostings/dev-tools/eclipse/dot.classpath Mon Jan 24 14:31:59 2011
@@ -73,6 +73,10 @@
 	<classpathentry kind="src" path="solr/contrib/extraction/src/main/java"/>
 	<classpathentry kind="src" path="solr/contrib/extraction/src/test/java"/>
 	<classpathentry kind="src" path="solr/contrib/extraction/src/test/resources"/>
+	<classpathentry kind="src" path="solr/contrib/uima/src/main/java"/>
+	<classpathentry kind="src" path="solr/contrib/uima/src/main/resources"/>
+	<classpathentry kind="src" path="solr/contrib/uima/src/test/java"/>
+	<classpathentry kind="src" path="solr/contrib/uima/src/test/resources"/>
 	<classpathentry kind="lib" path="lucene/lib/ant-1.7.1.jar"/>
 	<classpathentry kind="lib" path="lucene/lib/ant-junit-1.7.1.jar"/>
 	<classpathentry kind="lib" path="lucene/lib/junit-4.7.jar"/>
@@ -151,6 +155,12 @@
 	<classpathentry kind="lib" path="solr/contrib/extraction/lib/tika-core-0.8.jar"/>
 	<classpathentry kind="lib" path="solr/contrib/extraction/lib/tika-parsers-0.8.jar"/>
 	<classpathentry kind="lib" path="solr/contrib/extraction/lib/xmlbeans-2.3.0.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/commons-digester-2.0.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/uima-an-alchemy.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/uima-an-calais.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/uima-an-tagger.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/uima-an-wst.jar"/>
+	<classpathentry kind="lib" path="solr/contrib/uima/lib/uima-core.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Modified: lucene/dev/branches/bulkpostings/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/CHANGES.txt?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/bulkpostings/lucene/CHANGES.txt Mon Jan 24 14:31:59 2011
@@ -127,6 +127,9 @@ Changes in backwards compatibility polic
   
 * LUCENE-2865: Weight#scorer(AtomicReaderContext, boolean, boolean) now accepts
   a ScorerContext struct instead of booleans.(Simon Willnauer)
+  
+* LUCENE-2882: Cut over SpanQuery#getSpans to AtomicReaderContext to enforce
+  per segment semantics on SpanQuery & Spans. (Simon Willnauer)
 
 Changes in Runtime Behavior
 
@@ -140,6 +143,9 @@ Changes in Runtime Behavior
   documents that don't have the field get a norm byte value of 0. Previously, Lucene
   would populate "fake norms" with Similarity.getDefault() for these documents.
   (Robert Muir, Mike Mccandless)
+  
+* LUCENE-2720: IndexWriter throws IndexFormatTooOldException on open, rather 
+  than later when e.g. a merge starts. (Shai Erera, Mike McCandless, Uwe Schindler)
 
 API Changes
 
@@ -673,6 +679,16 @@ Bug fixes
 * LUCENE-2860: Fixed SegmentInfo.sizeInBytes to factor includeDocStores when it 
   decides whether to return the cached computed size or not. (Shai Erera)
 
+* LUCENE-2584: SegmentInfo.files() could hit ConcurrentModificationException if
+  called by multiple threads. (Alexander Kanarsky via Shai Erera)
+
+* LUCENE-2809: Fixed IndexWriter.numDocs to take into account
+  applied but not yet flushed deletes.  (Mike McCandless)
+
+* LUCENE-2879: MultiPhraseQuery previously calculated its phrase IDF by summing
+  internally, it now calls Similarity.idfExplain(Collection, IndexSearcher).
+  (Robert Muir)
+
 New features
 
 * LUCENE-2128: Parallelized fetching document frequencies during weight

Modified: lucene/dev/branches/bulkpostings/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/contrib/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Mon Jan 24 14:31:59 2011
@@ -30,6 +30,7 @@ import org.apache.lucene.analysis.Cachin
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.memory.MemoryIndex;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.spans.FieldMaskingSpanQuery;
@@ -50,7 +51,7 @@ public class WeightedSpanTermExtractor {
 
   private String fieldName;
   private TokenStream tokenStream;
-  private Map<String,IndexReader> readers = new HashMap<String,IndexReader>(10); 
+  private Map<String,AtomicReaderContext> readers = new HashMap<String,AtomicReaderContext>(10); 
   private String defaultField;
   private boolean expandMultiTermQuery;
   private boolean cachedTokenStream;
@@ -66,11 +67,11 @@ public class WeightedSpanTermExtractor {
   }
 
   private void closeReaders() {
-    Collection<IndexReader> readerSet = readers.values();
+    Collection<AtomicReaderContext> ctxSet = readers.values();
 
-    for (final IndexReader reader : readerSet) {
+    for (final AtomicReaderContext ctx : ctxSet) {
       try {
-        reader.close();
+        ctx.reader.close();
       } catch (IOException e) {
         // alert?
       }
@@ -149,7 +150,7 @@ public class WeightedSpanTermExtractor {
         query = mtq;
       }
       if (mtq.getField() != null) {
-        IndexReader ir = getReaderForField(mtq.getField());
+        IndexReader ir = getLeafContextForField(mtq.getField()).reader;
         extract(query.rewrite(ir), terms);
       }
     } else if (query instanceof MultiPhraseQuery) {
@@ -234,7 +235,7 @@ public class WeightedSpanTermExtractor {
     final boolean mustRewriteQuery = mustRewriteQuery(spanQuery);
     if (mustRewriteQuery) {
       for (final String field : fieldNames) {
-        final SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(getReaderForField(field));
+        final SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(getLeafContextForField(field).reader);
         queries.put(field, rewrittenQuery);
         rewrittenQuery.extractTerms(nonWeightedTerms);
       }
@@ -246,12 +247,12 @@ public class WeightedSpanTermExtractor {
 
     for (final String field : fieldNames) {
 
-      IndexReader reader = getReaderForField(field);
+      AtomicReaderContext context = getLeafContextForField(field);
       final Spans spans;
       if (mustRewriteQuery) {
-        spans = queries.get(field).getSpans(reader);
+        spans = queries.get(field).getSpans(context);
       } else {
-        spans = spanQuery.getSpans(reader);
+        spans = spanQuery.getSpans(context);
       }
 
 
@@ -317,22 +318,23 @@ public class WeightedSpanTermExtractor {
     return rv;
   }
 
-  private IndexReader getReaderForField(String field) throws IOException {
+  private AtomicReaderContext getLeafContextForField(String field) throws IOException {
     if(wrapToCaching && !cachedTokenStream && !(tokenStream instanceof CachingTokenFilter)) {
       tokenStream = new CachingTokenFilter(tokenStream);
       cachedTokenStream = true;
     }
-    IndexReader reader = readers.get(field);
-    if (reader == null) {
+    AtomicReaderContext context = readers.get(field);
+    if (context == null) {
       MemoryIndex indexer = new MemoryIndex();
       indexer.addField(field, tokenStream);
       tokenStream.reset();
       IndexSearcher searcher = indexer.createSearcher();
-      reader = searcher.getIndexReader();
-      readers.put(field, reader);
+      // MEM index has only atomic ctx
+      context = (AtomicReaderContext) searcher.getTopReaderContext();
+      readers.put(field, context);
     }
 
-    return reader;
+    return context;
   }
 
   /**

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/FieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/FieldsReader.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/FieldsReader.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/FieldsReader.java Mon Jan 24 14:31:59 2011
@@ -37,8 +37,10 @@ import java.io.Reader;
  * Class responsible for access to stored document fields.
  * <p/>
  * It uses &lt;segment&gt;.fdt and &lt;segment&gt;.fdx; files.
+ * 
+ * @lucene.internal
  */
-final class FieldsReader implements Cloneable {
+public final class FieldsReader implements Cloneable {
   private final static int FORMAT_SIZE = 4;
 
   private final FieldInfos fieldInfos;
@@ -74,6 +76,23 @@ final class FieldsReader implements Clon
     ensureOpen();
     return new FieldsReader(fieldInfos, numTotalDocs, size, format, docStoreOffset, cloneableFieldsStream, cloneableIndexStream);
   }
+
+  /** Verifies that the code version which wrote the segment is supported. */
+  public static void checkCodeVersion(Directory dir, String segment) throws IOException {
+    final String indexStreamFN = IndexFileNames.segmentFileName(segment, "", IndexFileNames.FIELDS_INDEX_EXTENSION);
+    IndexInput idxStream = dir.openInput(indexStreamFN, 1024);
+    
+    try {
+      int format = idxStream.readInt();
+      if (format < FieldsWriter.FORMAT_MINIMUM)
+        throw new IndexFormatTooOldException(indexStreamFN, format, FieldsWriter.FORMAT_MINIMUM, FieldsWriter.FORMAT_CURRENT);
+      if (format > FieldsWriter.FORMAT_CURRENT)
+        throw new IndexFormatTooNewException(indexStreamFN, format, FieldsWriter.FORMAT_MINIMUM, FieldsWriter.FORMAT_CURRENT);
+    } finally {
+      idxStream.close();
+    }
+  
+  }
   
   // Used only by clone
   private FieldsReader(FieldInfos fieldInfos, int numTotalDocs, int size, int format, int docStoreOffset,
@@ -89,11 +108,11 @@ final class FieldsReader implements Clon
     indexStream = (IndexInput) cloneableIndexStream.clone();
   }
   
-  FieldsReader(Directory d, String segment, FieldInfos fn) throws IOException {
+  public FieldsReader(Directory d, String segment, FieldInfos fn) throws IOException {
     this(d, segment, fn, BufferedIndexInput.BUFFER_SIZE, -1, 0);
   }
 
-  FieldsReader(Directory d, String segment, FieldInfos fn, int readBufferSize, int docStoreOffset, int size) throws IOException {
+  public FieldsReader(Directory d, String segment, FieldInfos fn, int readBufferSize, int docStoreOffset, int size) throws IOException {
     boolean success = false;
     isOriginal = true;
     try {
@@ -157,7 +176,7 @@ final class FieldsReader implements Clon
    *
    * @throws IOException
    */
-  final void close() throws IOException {
+  public final void close() throws IOException {
     if (!closed) {
       if (fieldsStream != null) {
         fieldsStream.close();
@@ -178,7 +197,7 @@ final class FieldsReader implements Clon
     }
   }
 
-  final int size() {
+  public final int size() {
     return size;
   }
 
@@ -186,7 +205,7 @@ final class FieldsReader implements Clon
     indexStream.seek(FORMAT_SIZE + (docID + docStoreOffset) * 8L);
   }
 
-  final Document doc(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException {
+  public final Document doc(int n, FieldSelector fieldSelector) throws CorruptIndexException, IOException {
     seekIndex(n);
     long position = indexStream.readLong();
     fieldsStream.seek(position);
@@ -237,7 +256,7 @@ final class FieldsReader implements Clon
    *  contiguous range of length numDocs starting with
    *  startDocID.  Returns the IndexInput (the fieldStream),
    *  already seeked to the starting point for startDocID.*/
-  final IndexInput rawDocs(int[] lengths, int startDocID, int numDocs) throws IOException {
+  public final IndexInput rawDocs(int[] lengths, int startDocID, int numDocs) throws IOException {
     seekIndex(startDocID);
     long startOffset = indexStream.readLong();
     long lastOffset = startOffset;

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexFormatTooOldException.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexFormatTooOldException.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexFormatTooOldException.java Mon Jan 24 14:31:59 2011
@@ -23,10 +23,15 @@ package org.apache.lucene.index;
  */
 public class IndexFormatTooOldException extends CorruptIndexException {
 
+  public IndexFormatTooOldException(String filename, String version) {
+    super("Format version is not supported" + (filename!=null ? (" in file '" + filename + "'") : "") +
+        ": " + version + ". This version of Lucene only supports indexes created with release 3.0 and later.");
+  }
+  
   public IndexFormatTooOldException(String filename, int version, int minVersion, int maxVersion) {
     super("Format version is not supported" + (filename!=null ? (" in file '" + filename + "'") : "") +
-      ": " + version + " (needs to be between " + minVersion + " and " + maxVersion +
-      "). This version of Lucene only supports indexes created with release 3.0 and later.");
+        ": " + version + " (needs to be between " + minVersion + " and " + maxVersion +
+    "). This version of Lucene only supports indexes created with release 3.0 and later.");
   }
 
 }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/IndexWriter.java Mon Jan 24 14:31:59 2011
@@ -270,6 +270,9 @@ public class IndexWriter implements Clos
   // The PayloadProcessorProvider to use when segments are merged
   private PayloadProcessorProvider payloadProcessorProvider;
 
+  // for testing
+  boolean anyNonBulkMerges;
+
   /**
    * Expert: returns a readonly reader, covering all
    * committed as well as un-committed changes to the index.
@@ -333,6 +336,8 @@ public class IndexWriter implements Clos
 
     ensureOpen();
 
+    final long tStart = System.currentTimeMillis();
+
     if (infoStream != null) {
       message("flush at getReader");
     }
@@ -355,6 +360,9 @@ public class IndexWriter implements Clos
     }
     maybeMerge();
 
+    if (infoStream != null) {
+      message("getReader took " + (System.currentTimeMillis() - tStart) + " msec");
+    }
     return r;
   }
 
@@ -605,8 +613,6 @@ public class IndexWriter implements Clos
     }
   }
   
-  
-  
   /**
    * Obtain the number of deleted docs for a pooled reader.
    * If the reader isn't being pooled, the segmentInfo's 
@@ -715,11 +721,8 @@ public class IndexWriter implements Clos
 
     boolean success = false;
 
-    // TODO: we should check whether this index is too old,
-    // and throw an IndexFormatTooOldExc up front, here,
-    // instead of later when merge, applyDeletes, getReader
-    // is attempted.  I think to do this we should store the
-    // oldest segment's version in segments_N.
+    // If index is too old, reading the segments will throw
+    // IndexFormatTooOldException.
     segmentInfos = new SegmentInfos(codecs);
     try {
       if (create) {
@@ -3090,6 +3093,7 @@ public class IndexWriter implements Clos
         message("merge segmentCodecs=" + merger.getSegmentCodecs());
         message("merge store matchedCount=" + merger.getMatchedSubReaderCount() + " vs " + numSegments);
       }
+      anyNonBulkMerges |= merger.getMatchedSubReaderCount() != numSegments;
       
       assert mergedDocCount == totDocCount;
 

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentInfo.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentInfo.java Mon Jan 24 14:31:59 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.store.IndexInput;
+import org.apache.lucene.util.Constants;
 import org.apache.lucene.index.codecs.Codec;
 import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.index.codecs.DefaultSegmentInfosWriter;
@@ -87,6 +88,13 @@ public final class SegmentInfo {
 
   private Map<String,String> diagnostics;
 
+  // Tracks the Lucene version this segment was created with, since 3.1. Null 
+  // indicates an older than 3.0 index, and it's used to detect a too old index.
+  // The format expected is "x.y" - "2.x" for pre-3.0 indexes (or null), and 
+  // specific versions afterwards ("3.0", "3.1" etc.).
+  // see Constants.LUCENE_MAIN_VERSION.
+  private String version;
+  
   public SegmentInfo(String name, int docCount, Directory dir, boolean isCompoundFile,
                      boolean hasProx, SegmentCodecs segmentCodecs, boolean hasVectors) {
     this.name = name;
@@ -95,10 +103,12 @@ public final class SegmentInfo {
     delGen = NO;
     this.isCompoundFile = isCompoundFile;
     this.docStoreOffset = -1;
+    this.docStoreSegment = name;
     this.hasProx = hasProx;
     this.segmentCodecs = segmentCodecs;
     this.hasVectors = hasVectors;
     delCount = 0;
+    version = Constants.LUCENE_MAIN_VERSION;
   }
 
   /**
@@ -106,11 +116,13 @@ public final class SegmentInfo {
    */
   void reset(SegmentInfo src) {
     clearFiles();
+    version = src.version;
     name = src.name;
     docCount = src.docCount;
     dir = src.dir;
     delGen = src.delGen;
     docStoreOffset = src.docStoreOffset;
+    docStoreSegment = src.docStoreSegment;
     docStoreIsCompoundFile = src.docStoreIsCompoundFile;
     hasVectors = src.hasVectors;
     hasProx = src.hasProx;
@@ -145,6 +157,9 @@ public final class SegmentInfo {
    */
   public SegmentInfo(Directory dir, int format, IndexInput input, CodecProvider codecs) throws IOException {
     this.dir = dir;
+    if (format <= DefaultSegmentInfosWriter.FORMAT_3_1) {
+      version = input.readString();
+    }
     name = input.readString();
     docCount = input.readInt();
     delGen = input.readLong();
@@ -293,6 +308,7 @@ public final class SegmentInfo {
       si.normGen = normGen.clone();
     }
     si.hasVectors = hasVectors;
+    si.version = version;
     return si;
   }
 
@@ -433,6 +449,8 @@ public final class SegmentInfo {
   public void write(IndexOutput output)
     throws IOException {
     assert delCount <= docCount: "delCount=" + delCount + " docCount=" + docCount + " segment=" + name;
+    // Write the Lucene version that created this segment, since 3.1
+    output.writeString(version);
     output.writeString(name);
     output.writeInt(docCount);
     output.writeLong(delGen);
@@ -574,8 +592,9 @@ public final class SegmentInfo {
   /** Used for debugging.  Format may suddenly change.
    * 
    *  <p>Current format looks like
-   *  <code>_a:c45/4->_1</code>, which means the segment's
-   *  name is <code>_a</code>; it's using compound file
+   *  <code>_a(3.1):c45/4->_1</code>, which means the segment's
+   *  name is <code>_a</code>; it was created with Lucene 3.1 (or
+   *  '?' if it's unkown); it's using compound file
    *  format (would be <code>C</code> if not compound); it
    *  has 45 documents; it has 4 deletions (this part is
    *  left off when there are no deletions); it's using the
@@ -585,7 +604,7 @@ public final class SegmentInfo {
   public String toString(Directory dir, int pendingDelCount) {
 
     StringBuilder s = new StringBuilder();
-    s.append(name).append(':');
+    s.append(name).append('(').append(version == null ? "?" : version).append(')').append(':');
 
     char cfs = getUseCompoundFile() ? 'c' : 'C';
     s.append(cfs);
@@ -633,4 +652,25 @@ public final class SegmentInfo {
   public int hashCode() {
     return dir.hashCode() + name.hashCode();
   }
+
+  /**
+   * Used by DefaultSegmentInfosReader to upgrade a 3.0 segment to record its
+   * version is "3.0". This method can be removed when we're not required to
+   * support 3x indexes anymore, e.g. in 5.0.
+   * <p>
+   * <b>NOTE:</b> this method is used for internal purposes only - you should
+   * not modify the version of a SegmentInfo, or it may result in unexpected
+   * exceptions thrown when you attempt to open the index.
+   * 
+   * @lucene.internal
+   */
+  public void setVersion(String version) {
+    this.version = version;
+  }
+  
+  /** Returns the version of the code which wrote the segment. */
+  public String getVersion() {
+    return version;
+  }
+  
 }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentReader.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentReader.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/SegmentReader.java Mon Jan 24 14:31:59 2011
@@ -226,13 +226,7 @@ public class SegmentReader extends Index
           assert storeDir != null;
         }
 
-        final String storesSegment;
-        if (si.getDocStoreOffset() != -1) {
-          storesSegment = si.getDocStoreSegment();
-        } else {
-          storesSegment = segment;
-        }
-
+        final String storesSegment = si.getDocStoreSegment();
         fieldsReaderOrig = new FieldsReader(storeDir, storesSegment, fieldInfos, readBufferSize,
                                             si.getDocStoreOffset(), si.docCount);
 

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosReader.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosReader.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosReader.java Mon Jan 24 14:31:59 2011
@@ -19,7 +19,10 @@ package org.apache.lucene.index.codecs;
 
 import java.io.IOException;
 
+import org.apache.lucene.index.CompoundFileReader;
 import org.apache.lucene.index.CorruptIndexException;
+import org.apache.lucene.index.FieldsReader;
+import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.IndexFormatTooOldException;
 import org.apache.lucene.index.IndexFormatTooNewException;
 import org.apache.lucene.index.SegmentInfo;
@@ -55,7 +58,41 @@ public class DefaultSegmentInfosReader e
       infos.counter = input.readInt(); // read counter
   
       for (int i = input.readInt(); i > 0; i--) { // read segmentInfos
-        infos.add(new SegmentInfo(directory, format, input, codecs));
+        SegmentInfo si = new SegmentInfo(directory, format, input, codecs);
+        if (si.getVersion() == null) {
+          // Could be a 3.0 - try to open the doc stores - if it fails, it's a
+          // 2.x segment, and an IndexFormatTooOldException will be thrown,
+          // which is what we want.
+          Directory dir = directory;
+          if (si.getDocStoreOffset() != -1) {
+            if (si.getDocStoreIsCompoundFile()) {
+              dir = new CompoundFileReader(dir, IndexFileNames.segmentFileName(
+                  si.getDocStoreSegment(), "",
+                  IndexFileNames.COMPOUND_FILE_STORE_EXTENSION), 1024);
+            }
+          } else if (si.getUseCompoundFile()) {
+            dir = new CompoundFileReader(dir, IndexFileNames.segmentFileName(
+                si.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION), 1024);
+          }
+
+          try {
+            FieldsReader.checkCodeVersion(dir, si.getDocStoreSegment());
+          } finally {
+            // If we opened the directory, close it
+            if (dir != directory) dir.close();
+          }
+          
+          // Above call succeeded, so it's a 3.0 segment. Upgrade it so the next
+          // time the segment is read, its version won't be null and we won't
+          // need to open FieldsReader every time for each such segment.
+          si.setVersion("3.0");
+        } else if (si.getVersion().equals("2.x")) {
+          // If it's a 3x index touched by 3.1+ code, then segments record their
+          // version, whether they are 2.x ones or not. We detect that and throw
+          // appropriate exception.
+          throw new IndexFormatTooOldException(si.name, si.getVersion());
+        }
+        infos.add(si);
       }
       
       infos.userData = input.readStringStringMap();

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosWriter.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosWriter.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/index/codecs/DefaultSegmentInfosWriter.java Mon Jan 24 14:31:59 2011
@@ -38,9 +38,12 @@ public class DefaultSegmentInfosWriter e
   /** Each segment records whether it has term vectors */
   public static final int FORMAT_HAS_VECTORS = -10;
 
+  /** Each segment records the Lucene version that created it. */
+  public static final int FORMAT_3_1 = -11;
+
   /** Each segment records whether its postings are written
    *  in the new flex format */
-  public static final int FORMAT_4_0 = -11;
+  public static final int FORMAT_4_0 = -12;
 
   /** This must always point to the most recent file format.
    * whenever you add a new format, make it 1 smaller (negative version logic)! */

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/CachingSpanFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/CachingSpanFilter.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/CachingSpanFilter.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/CachingSpanFilter.java Mon Jan 24 14:31:59 2011
@@ -62,14 +62,15 @@ public class CachingSpanFilter extends S
 
   @Override
   public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
-    SpanFilterResult result = getCachedResult(context.reader);
+    SpanFilterResult result = getCachedResult(context);
     return result != null ? result.getDocIdSet() : null;
   }
   
   // for testing
   int hitCount, missCount;
 
-  private SpanFilterResult getCachedResult(IndexReader reader) throws IOException {
+  private SpanFilterResult getCachedResult(AtomicReaderContext context) throws IOException {
+    final IndexReader reader = context.reader;
 
     final Object coreKey = reader.getCoreCacheKey();
     final Object delCoreKey = reader.hasDeletions() ? reader.getDeletedDocs() : coreKey;
@@ -81,7 +82,7 @@ public class CachingSpanFilter extends S
     }
 
     missCount++;
-    result = filter.bitSpans(reader);
+    result = filter.bitSpans(context);
 
     cache.put(coreKey, delCoreKey, result);
     return result;
@@ -89,8 +90,8 @@ public class CachingSpanFilter extends S
 
 
   @Override
-  public SpanFilterResult bitSpans(IndexReader reader) throws IOException {
-    return getCachedResult(reader);
+  public SpanFilterResult bitSpans(AtomicReaderContext context) throws IOException {
+    return getCachedResult(context);
   }
 
   @Override

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/MultiPhraseQuery.java Mon Jan 24 14:31:59 2011
@@ -25,6 +25,7 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.DocsAndPositionsEnum;
+import org.apache.lucene.search.Explanation.IDFExplanation;
 import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.ToStringUtils;
@@ -131,6 +132,7 @@ public class MultiPhraseQuery extends Qu
   private class MultiPhraseWeight extends Weight {
     private Similarity similarity;
     private float value;
+    private final IDFExplanation idfExp;
     private float idf;
     private float queryNorm;
     private float queryWeight;
@@ -140,12 +142,14 @@ public class MultiPhraseQuery extends Qu
       this.similarity = searcher.getSimilarity();
 
       // compute idf
-      final int maxDoc = searcher.maxDoc();
+      ArrayList<Term> allTerms = new ArrayList<Term>();
       for(final Term[] terms: termArrays) {
         for (Term term: terms) {
-          idf += this.similarity.idf(searcher.docFreq(term), maxDoc);
+          allTerms.add(term);
         }
       }
+      idfExp = similarity.idfExplain(allTerms, searcher);
+      idf = idfExp.getIdf();
     }
 
     @Override
@@ -238,7 +242,7 @@ public class MultiPhraseQuery extends Qu
       ComplexExplanation result = new ComplexExplanation();
       result.setDescription("weight("+getQuery()+" in "+doc+"), product of:");
 
-      Explanation idfExpl = new Explanation(idf, "idf("+getQuery()+")");
+      Explanation idfExpl = new Explanation(idf, "idf(" + field + ":" + idfExp.explain() +")");
 
       // explain query weight
       Explanation queryExpl = new Explanation();

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanFilter.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanFilter.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanFilter.java Mon Jan 24 14:31:59 2011
@@ -15,7 +15,7 @@ package org.apache.lucene.search;
  * limitations under the License.
  */
 
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 
 import java.io.IOException;
 
@@ -30,9 +30,9 @@ import java.io.IOException;
 public abstract class SpanFilter extends Filter{
   /** Returns a SpanFilterResult with true for documents which should be permitted in
     search results, and false for those that should not and Spans for where the true docs match.
-   * @param reader The {@link org.apache.lucene.index.IndexReader} to load position and DocIdSet information from
+   * @param context The {@link AtomicReaderContext} to load position and DocIdSet information from
    * @return A {@link SpanFilterResult}
    * @throws java.io.IOException if there was an issue accessing the necessary information
    * */
-  public abstract SpanFilterResult bitSpans(IndexReader reader) throws IOException;
+  public abstract SpanFilterResult bitSpans(AtomicReaderContext context) throws IOException;
 }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanQueryFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanQueryFilter.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanQueryFilter.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/SpanQueryFilter.java Mon Jan 24 14:31:59 2011
@@ -16,7 +16,6 @@ package org.apache.lucene.search;
  */
 
 
-import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.Spans;
@@ -54,15 +53,15 @@ public class SpanQueryFilter extends Spa
 
   @Override
   public DocIdSet getDocIdSet(AtomicReaderContext context) throws IOException {
-    SpanFilterResult result = bitSpans(context.reader);
+    SpanFilterResult result = bitSpans(context);
     return result.getDocIdSet();
   }
 
   @Override
-  public SpanFilterResult bitSpans(IndexReader reader) throws IOException {
+  public SpanFilterResult bitSpans(AtomicReaderContext context) throws IOException {
 
-    final OpenBitSet bits = new OpenBitSet(reader.maxDoc());
-    Spans spans = query.getSpans(reader);
+    final OpenBitSet bits = new OpenBitSet(context.reader.maxDoc());
+    Spans spans = query.getSpans(context);
     List<SpanFilterResult.PositionInfo> tmp = new ArrayList<SpanFilterResult.PositionInfo>(20);
     int currentDoc = -1;
     SpanFilterResult.PositionInfo currentInfo = null;

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java Mon Jan 24 14:31:59 2011
@@ -144,7 +144,7 @@ public class PayloadNearQuery extends Sp
 
     @Override
     public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext) throws IOException {
-      return new PayloadNearSpanScorer(query.getSpans(context.reader), this,
+      return new PayloadNearSpanScorer(query.getSpans(context), this,
           similarity, context.reader.norms(query.getField()));
     }
   }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java Mon Jan 24 14:31:59 2011
@@ -24,6 +24,8 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
+import org.apache.lucene.index.IndexReader.ReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanQuery;
@@ -38,6 +40,7 @@ import org.apache.lucene.search.spans.Sp
 import org.apache.lucene.search.spans.SpanQuery;
 import org.apache.lucene.search.spans.SpanTermQuery;
 import org.apache.lucene.search.spans.Spans;
+import org.apache.lucene.util.ReaderUtil;
 
 /**
  * Experimental class to get set of payloads for most standard Lucene queries.
@@ -48,14 +51,16 @@ import org.apache.lucene.search.spans.Sp
  * 
  */
 public class PayloadSpanUtil {
-  private IndexReader reader;
+  private ReaderContext context;
 
   /**
-   * @param reader
+   * @param context
    *          that contains doc with payloads to extract
+   *          
+   * @see IndexReader#getTopReaderContext()
    */
-  public PayloadSpanUtil(IndexReader reader) {
-    this.reader = reader;
+  public PayloadSpanUtil(ReaderContext context) {
+    this.context = context;
   }
 
   /**
@@ -169,15 +174,16 @@ public class PayloadSpanUtil {
 
   private void getPayloads(Collection<byte []> payloads, SpanQuery query)
       throws IOException {
-    Spans spans = query.getSpans(reader);
-
-    while (spans.next() == true) {
-      if (spans.isPayloadAvailable()) {
-        Collection<byte[]> payload = spans.getPayload();
-        for (byte [] bytes : payload) {
-          payloads.add(bytes);
+    final AtomicReaderContext[] leaves = ReaderUtil.leaves(context);
+    for (AtomicReaderContext atomicReaderContext : leaves) {
+      final Spans spans = query.getSpans(atomicReaderContext);
+      while (spans.next() == true) {
+        if (spans.isPayloadAvailable()) {
+          Collection<byte[]> payload = spans.getPayload();
+          for (byte [] bytes : payload) {
+            payloads.add(bytes);
+          }
         }
-
       }
     }
   }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java Mon Jan 24 14:31:59 2011
@@ -75,7 +75,7 @@ public class PayloadTermQuery extends Sp
 
     @Override
     public Scorer scorer(AtomicReaderContext context, ScorerContext scorerContext) throws IOException {
-      return new PayloadTermSpanScorer((TermSpans) query.getSpans(context.reader),
+      return new PayloadTermSpanScorer((TermSpans) query.getSpans(context),
           this, similarity, context.reader.norms(query.getField()));
     }
 

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java Mon Jan 24 14:31:59 2011
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.util.Set;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.Weight;
@@ -91,8 +92,8 @@ public class FieldMaskingSpanQuery exten
   // ...this is done to be more consistent with things like SpanFirstQuery
   
   @Override
-  public Spans getSpans(IndexReader reader) throws IOException {
-    return maskedQuery.getSpans(reader);
+  public Spans getSpans(AtomicReaderContext context) throws IOException {
+    return maskedQuery.getSpans(context);
   }
 
   @Override

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java Mon Jan 24 14:31:59 2011
@@ -17,7 +17,7 @@ package org.apache.lucene.search.spans;
  * limitations under the License.
  */
 
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.util.ArrayUtil;
 
 import java.io.IOException;
@@ -77,11 +77,11 @@ public class NearSpansOrdered extends Sp
   private SpanNearQuery query;
   private boolean collectPayloads = true;
   
-  public NearSpansOrdered(SpanNearQuery spanNearQuery, IndexReader reader) throws IOException {
-    this(spanNearQuery, reader, true);
+  public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context) throws IOException {
+    this(spanNearQuery, context, true);
   }
 
-  public NearSpansOrdered(SpanNearQuery spanNearQuery, IndexReader reader, boolean collectPayloads)
+  public NearSpansOrdered(SpanNearQuery spanNearQuery, AtomicReaderContext context, boolean collectPayloads)
   throws IOException {
     if (spanNearQuery.getClauses().length < 2) {
       throw new IllegalArgumentException("Less than 2 clauses: "
@@ -94,7 +94,7 @@ public class NearSpansOrdered extends Sp
     matchPayload = new LinkedList<byte[]>();
     subSpansByDoc = new Spans[clauses.length];
     for (int i = 0; i < clauses.length; i++) {
-      subSpans[i] = clauses[i].getSpans(reader);
+      subSpans[i] = clauses[i].getSpans(context);
       subSpansByDoc[i] = subSpans[i]; // used in toSameDoc()
     }
     query = spanNearQuery; // kept for toString() only.

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java Mon Jan 24 14:31:59 2011
@@ -17,7 +17,7 @@ package org.apache.lucene.search.spans;
  * limitations under the License.
  */
 
-import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.util.PriorityQueue;
 
 import java.io.IOException;
@@ -131,7 +131,7 @@ public class NearSpansUnordered extends 
   }
 
 
-  public NearSpansUnordered(SpanNearQuery query, IndexReader reader)
+  public NearSpansUnordered(SpanNearQuery query, AtomicReaderContext context)
     throws IOException {
     this.query = query;
     this.slop = query.getSlop();
@@ -141,7 +141,7 @@ public class NearSpansUnordered extends 
     subSpans = new Spans[clauses.length];    
     for (int i = 0; i < clauses.length; i++) {
       SpansCell cell =
-        new SpansCell(clauses[i].getSpans(reader), i);
+        new SpansCell(clauses[i].getSpans(context), i);
       ordered.add(cell);
       subSpans[i] = cell.spans;
     }

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java Mon Jan 24 14:31:59 2011
@@ -38,7 +38,7 @@ public class SpanFirstQuery extends Span
 
   @Override
   protected AcceptStatus acceptPosition(Spans spans) throws IOException {
-    assert spans.start() != spans.end();
+    assert spans.start() != spans.end() : "start equals end: " + spans.start();
     if (spans.start() >= end)
       return AcceptStatus.NO_AND_ADVANCE;
     else if (spans.end() <= end)

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanMultiTermQueryWrapper.java Mon Jan 24 14:31:59 2011
@@ -20,6 +20,7 @@ package org.apache.lucene.search.spans;
 import java.io.IOException;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.MultiTermQuery;
 import org.apache.lucene.search.Query;
@@ -88,7 +89,7 @@ public class SpanMultiTermQueryWrapper<Q
   }
   
   @Override
-  public Spans getSpans(IndexReader reader) throws IOException {
+  public Spans getSpans(AtomicReaderContext context) throws IOException {
     throw new UnsupportedOperationException("Query should have been rewritten");
   }
 

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNearQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNearQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNearQuery.java Mon Jan 24 14:31:59 2011
@@ -27,6 +27,7 @@ import java.util.Set;
 
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.util.ToStringUtils;
@@ -116,16 +117,16 @@ public class SpanNearQuery extends SpanQ
   }
 
   @Override
-  public Spans getSpans(final IndexReader reader) throws IOException {
+  public Spans getSpans(final AtomicReaderContext context) throws IOException {
     if (clauses.size() == 0)                      // optimize 0-clause case
-      return new SpanOrQuery(getClauses()).getSpans(reader);
+      return new SpanOrQuery(getClauses()).getSpans(context);
 
     if (clauses.size() == 1)                      // optimize 1-clause case
-      return clauses.get(0).getSpans(reader);
+      return clauses.get(0).getSpans(context);
 
     return inOrder
-            ? (Spans) new NearSpansOrdered(this, reader, collectPayloads)
-            : (Spans) new NearSpansUnordered(this, reader);
+            ? (Spans) new NearSpansOrdered(this, context, collectPayloads)
+            : (Spans) new NearSpansUnordered(this, context);
   }
 
   @Override

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNotQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNotQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanNotQuery.java Mon Jan 24 14:31:59 2011
@@ -18,6 +18,7 @@ package org.apache.lucene.search.spans;
  */
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.util.ToStringUtils;
@@ -74,12 +75,12 @@ public class SpanNotQuery extends SpanQu
   }
 
   @Override
-  public Spans getSpans(final IndexReader reader) throws IOException {
+  public Spans getSpans(final AtomicReaderContext context) throws IOException {
     return new Spans() {
-        private Spans includeSpans = include.getSpans(reader);
+        private Spans includeSpans = include.getSpans(context);
         private boolean moreInclude = true;
 
-        private Spans excludeSpans = exclude.getSpans(reader);
+        private Spans excludeSpans = exclude.getSpans(context);
         private boolean moreExclude = excludeSpans.next();
 
         @Override

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanOrQuery.java Mon Jan 24 14:31:59 2011
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.Set;
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.util.PriorityQueue;
 import org.apache.lucene.util.ToStringUtils;
@@ -162,9 +163,9 @@ public class SpanOrQuery extends SpanQue
   }
 
   @Override
-  public Spans getSpans(final IndexReader reader) throws IOException {
+  public Spans getSpans(final AtomicReaderContext context) throws IOException {
     if (clauses.size() == 1)                      // optimize 1-clause case
-      return (clauses.get(0)).getSpans(reader);
+      return (clauses.get(0)).getSpans(context);
 
     return new Spans() {
         private SpanQueue queue = null;
@@ -173,7 +174,7 @@ public class SpanOrQuery extends SpanQue
           queue = new SpanQueue(clauses.size());
           Iterator<SpanQuery> i = clauses.iterator();
           while (i.hasNext()) {
-            Spans spans = i.next().getSpans(reader);
+            Spans spans = i.next().getSpans(context);
             if (   ((target == -1) && spans.next())
                 || ((target != -1) && spans.skipTo(target))) {
               queue.add(spans);

Modified: lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java?rev=1062798&r1=1062797&r2=1062798&view=diff
==============================================================================
--- lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java (original)
+++ lucene/dev/branches/bulkpostings/lucene/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java Mon Jan 24 14:31:59 2011
@@ -18,6 +18,7 @@ package org.apache.lucene.search.spans;
 
 
 import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.Query;
 
@@ -80,8 +81,8 @@ public abstract class SpanPositionCheckQ
   protected abstract AcceptStatus acceptPosition(Spans spans) throws IOException;
 
   @Override
-  public Spans getSpans(final IndexReader reader) throws IOException {
-    return new PositionCheckSpan(reader);
+  public Spans getSpans(final AtomicReaderContext context) throws IOException {
+    return new PositionCheckSpan(context);
   }
 
 
@@ -105,8 +106,8 @@ public abstract class SpanPositionCheckQ
   protected class PositionCheckSpan extends Spans {
     private Spans spans;
 
-    public PositionCheckSpan(IndexReader reader) throws IOException {
-      spans = match.getSpans(reader);
+    public PositionCheckSpan(AtomicReaderContext context) throws IOException {
+      spans = match.getSpans(context);
     }
 
     @Override