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/12/09 14:30:44 UTC

svn commit: r1212405 [1/6] - in /lucene/dev/branches/lucene3622: ./ lucene/ lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/ lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/ lucene/contrib/highlighter...

Author: rmuir
Date: Fri Dec  9 13:30:38 2011
New Revision: 1212405

URL: http://svn.apache.org/viewvc?rev=1212405&view=rev
Log:
merge trunk (1211241:1212396)

Added:
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsConsumer.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NormsConsumer.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsConsumerPerField.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/NormsConsumerPerField.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsFormat.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsFormat.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsReader.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/NormsWriter.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/NormsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsReader.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsWriter.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsFormat.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsFormat.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsWriter.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40NormsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsFormat.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsFormat.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsReader.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsWriter.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextNormsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
      - copied unchanged from r1212396, lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
      - copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/SolrEntityProcessor.java
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/MockSolrEntityProcessor.java
      - copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/MockSolrEntityProcessor.java
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
      - copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorUnit.java
      - copied unchanged from r1212396, lucene/dev/trunk/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorUnit.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
      - copied unchanged from r1212396, lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/BadComponentTest.java
    lucene/dev/branches/lucene3622/solr/example/example-DIH/solr/solr/
      - copied from r1212396, lucene/dev/trunk/solr/example/example-DIH/solr/solr/
Removed:
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/NormsWriterPerField.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentNorms.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/StaleReaderException.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsDictReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsDictWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsIndexReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingTermsIndexWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderDelete.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderOnDiskFull.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestSetNorm.java
    lucene/dev/branches/lucene3622/modules/benchmark/conf/deletepercent.alg
    lucene/dev/branches/lucene3622/modules/benchmark/conf/deletes.alg
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteByPercentTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/DeleteDocTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/FlushReaderTask.java
Modified:
    lucene/dev/branches/lucene3622/   (props changed)
    lucene/dev/branches/lucene3622/lucene/   (props changed)
    lucene/dev/branches/lucene3622/lucene/CHANGES.txt
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
    lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
    lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
    lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/MultiReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/ParallelReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/PersistentSnapshotDeletionPolicy.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentCoreReaders.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentInfo.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentMerger.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SegmentReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/SlowMultiReaderWrapper.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/BlockTreeTermsReader.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/BlockTreeTermsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/Codec.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingCodec.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/appending/AppendingPostingsFormat.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene3x/Lucene3xCodec.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/lucene40/Lucene40Codec.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/codecs/simpletext/SimpleTextCodec.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/values/IndexDocValues.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/search/FieldValueFilter.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/search/SearcherManager.java
    lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/store/MMapDirectory.java
    lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/analysis/CollationTestBase.java
    lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/index/RandomIndexWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test-framework/java/org/apache/lucene/search/QueryUtils.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/document/TestBinaryDocument.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestAtomicUpdate.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCheckIndex.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestConcurrentMergeScheduler.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestCrash.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDeletionPolicy.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDoc.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderClone.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexReaderReopen.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterCommit.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterForceMerge.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterMergePolicy.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterUnicode.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestMultiReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestNorms.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitNorms.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitPositions.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestOmitTf.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestPayloads.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestRollback.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentTermDocs.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSegmentTermEnum.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSizeBoundedForceMerge.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestStressIndexing.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestSumDocFreq.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestThreadedForceMerge.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/TestTransactions.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/codecs/appending/TestAppendingCodec.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/codecs/perfield/TestPerFieldPostingsFormat.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/index/values/TestDocValuesIndexing.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestFieldCacheRangeFilter.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMultiTermQueryRewrites.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/spans/TestSpans.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/search/spans/TestSpansAdvanced2.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestLockFactory.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/store/TestRAMDirectory.java
    lucene/dev/branches/lucene3622/lucene/src/test/org/apache/lucene/util/TestFieldCacheSanityChecker.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestClassicAnalyzer.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/core/TestKeywordAnalyzer.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestLimitTokenCountAnalyzer.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/sinks/TestTeeSinkTokenFilter.java
    lucene/dev/branches/lucene3622/modules/analysis/common/src/test/org/apache/lucene/analysis/th/TestThaiAnalyzer.java
    lucene/dev/branches/lucene3622/modules/benchmark/   (props changed)
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/CommitIndexTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/OpenReaderTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PerfTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java
    lucene/dev/branches/lucene3622/modules/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
    lucene/dev/branches/lucene3622/modules/facet/   (props changed)
    lucene/dev/branches/lucene3622/modules/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleMain.java
    lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/search/TestTotalFacetCountsCache.java
    lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestIndexClose.java
    lucene/dev/branches/lucene3622/modules/facet/src/test/org/apache/lucene/facet/util/TestScoredDocIDsUtils.java
    lucene/dev/branches/lucene3622/modules/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
    lucene/dev/branches/lucene3622/modules/queryparser/src/test/org/apache/lucene/queryparser/xml/TestParser.java
    lucene/dev/branches/lucene3622/modules/queryparser/src/test/org/apache/lucene/queryparser/xml/builders/TestNumericRangeFilterBuilder.java   (contents, props changed)
    lucene/dev/branches/lucene3622/modules/suggest/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java
    lucene/dev/branches/lucene3622/modules/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
    lucene/dev/branches/lucene3622/solr/   (props changed)
    lucene/dev/branches/lucene3622/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/lucene3622/solr/build.xml   (props changed)
    lucene/dev/branches/lucene3622/solr/common-build.xml   (props changed)
    lucene/dev/branches/lucene3622/solr/contrib/   (props changed)
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/CHANGES.txt
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/java/   (props changed)
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/   (props changed)
    lucene/dev/branches/lucene3622/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSqlEntityProcessor2.java
    lucene/dev/branches/lucene3622/solr/core/   (props changed)
    lucene/dev/branches/lucene3622/solr/core/src/java/   (props changed)
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/CoreContainer.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/IndexReaderFactory.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/SolrCore.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/core/StandardIndexReaderFactory.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/FileBasedSpellChecker.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/IndexBasedSpellChecker.java
    lucene/dev/branches/lucene3622/solr/core/src/java/org/apache/solr/spelling/SpellingQueryConverter.java
    lucene/dev/branches/lucene3622/solr/core/src/test/   (props changed)
    lucene/dev/branches/lucene3622/solr/core/src/test-files/solr/conf/solrconfig-elevate.xml
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/AlternateDirectoryTest.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/TestQuerySenderListener.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/core/TestQuerySenderNoQuery.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
    lucene/dev/branches/lucene3622/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
    lucene/dev/branches/lucene3622/solr/example/   (props changed)
    lucene/dev/branches/lucene3622/solr/example/example-DIH/README.txt
    lucene/dev/branches/lucene3622/solr/example/example-DIH/solr/solr.xml
    lucene/dev/branches/lucene3622/solr/test-framework/   (props changed)

Modified: lucene/dev/branches/lucene3622/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/CHANGES.txt?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3622/lucene/CHANGES.txt Fri Dec  9 13:30:38 2011
@@ -207,6 +207,18 @@ Changes in backwards compatibility polic
 * LUCENE-3533: Removed SpanFilters, they created large lists of objects and 
   did not scale. (Robert Muir)
   
+* LUCENE-3606: IndexReader was made read-only. It is no longer possible to
+  delete or undelete documents using IndexReader; you have to use IndexWriter
+  now. As deleting by internal Lucene docID is no longer possible, this
+  requires adding a unique identifier field to your index. Deleting/relying
+  upon Lucene docIDs is not recommended anyway, because they can change.
+  Consequently commit() was removed and IndexReader.open(), openIfChanged(),
+  and clone() no longer take readOnly booleans or IndexDeletionPolicy
+  instances. Furthermore, IndexReader.setNorm() was removed. If you need
+  customized norm values, the recommended way to do this is by modifying
+  SimilarityProvider to use an external byte[] or one of the new DocValues
+  fields (LUCENE-3108).  (Uwe Schindler, Robert Muir)
+  
 Changes in Runtime Behavior
 
 * LUCENE-2846: omitNorms now behaves like omitTermFrequencyAndPositions, if you
@@ -649,6 +661,13 @@ Changes in backwards compatibility polic
   FieldCacheTermsFilter.FieldCacheTermsFilterDocIdSet was removed and
   replaced by another internal implementation.  (Uwe Schindler)
 
+* LUCENE-3620: FilterIndexReader now overrides all methods of IndexReader that 
+  it should (note that some are still not overridden, as they should be 
+  overridden by sub-classes only). In the process, some methods of IndexReader 
+  were made final. This is not expected to affect many apps, since these methods
+  already delegate to abstract methods, which you had to already override 
+  anyway. (Shai Erera)
+  
 Security fixes
 
 * LUCENE-3588: Try harder to prevent SIGSEGV on cloned MMapIndexInputs:
@@ -669,6 +688,13 @@ Bug fixes
   to correctly respect deletions on reopened SegmentReaders. Factored out
   FieldCacheDocIdSet to be a top-level class.  (Uwe Schindler, Simon Willnauer)
 
+* LUCENE-3627: Don't let an errant 0-byte segments_N file corrupt the index.
+  (Ken McCracken via Mike McCandless)
+
+Documentation
+
+* LUCENE-3597: Fixed incorrect grouping documentation. (Martijn van Groningen, Robert Muir)
+
 Build
 
 * LUCENE-3228: Stop downloading external javadoc package-list files:

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java Fri Dec  9 13:30:38 2011
@@ -58,7 +58,7 @@ public class FieldTermStack {
   //  writer.addDocument( doc );
   //  writer.close();
     
-  //  IndexReader reader = IndexReader.open( dir, true );
+  //  IndexReader reader = IndexReader.open(dir1);
   //  new FieldTermStack( reader, 0, "f", fieldQuery );
   //  reader.close();
   //}

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterPhraseTest.java Fri Dec  9 13:30:38 2011
@@ -68,7 +68,7 @@ public class HighlighterPhraseTest exten
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -116,7 +116,7 @@ public class HighlighterPhraseTest exten
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -191,7 +191,7 @@ public class HighlighterPhraseTest exten
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -237,7 +237,7 @@ public class HighlighterPhraseTest exten
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -281,7 +281,7 @@ public class HighlighterPhraseTest exten
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Fri Dec  9 13:30:38 2011
@@ -1677,7 +1677,7 @@ public class HighlighterTest extends Bas
    * writer = new IndexWriter(ramDir,bigramAnalyzer , true); Document d = new
    * Document(); Field f = new Field(FIELD_NAME, "java abc def", true, true,
    * true); d.add(f); writer.addDocument(d); writer.close(); IndexReader reader =
-   * IndexReader.open(ramDir, true);
+   * IndexReader.open(ramDir);
    * 
    * IndexSearcher searcher=new IndexSearcher(reader); query =
    * QueryParser.parse("abc", FIELD_NAME, bigramAnalyzer);
@@ -1763,7 +1763,7 @@ public class HighlighterTest extends Bas
     writer.addDocument(doc, analyzer);
     writer.forceMerge(1);
     writer.close();
-    reader = IndexReader.open(ramDir, true);
+    reader = IndexReader.open(ramDir);
     numHighlights = 0;
   }
 

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/TokenSourcesTest.java Fri Dec  9 13:30:38 2011
@@ -113,7 +113,7 @@ public class TokenSourcesTest extends Lu
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -162,7 +162,7 @@ public class TokenSourcesTest extends Lu
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -210,7 +210,7 @@ public class TokenSourcesTest extends Lu
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);
@@ -259,7 +259,7 @@ public class TokenSourcesTest extends Lu
     } finally {
       indexWriter.close();
     }
-    final IndexReader indexReader = IndexReader.open(directory, true);
+    final IndexReader indexReader = IndexReader.open(directory);
     try {
       assertEquals(1, indexReader.numDocs());
       final IndexSearcher indexSearcher = newSearcher(indexReader);

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java Fri Dec  9 13:30:38 2011
@@ -364,7 +364,7 @@ public abstract class AbstractTestCase e
     writer.addDocument( doc );
     writer.close();
     if (reader != null) reader.close();
-    reader = IndexReader.open( dir, true );
+    reader = IndexReader.open(dir);
   }
   
   // make 1 doc with multi valued & not analyzed field
@@ -383,7 +383,7 @@ public abstract class AbstractTestCase e
     writer.addDocument( doc );
     writer.close();
     if (reader != null) reader.close();
-    reader = IndexReader.open( dir, true );
+    reader = IndexReader.open(dir);
   }
   
   protected void makeIndexShortMV() throws Exception {

Modified: lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java Fri Dec  9 13:30:38 2011
@@ -147,7 +147,7 @@ public class SimpleFragmentsBuilderTest 
     writer.addDocument( doc );
     writer.close();
     if (reader != null) reader.close();
-    reader = IndexReader.open( dir, true );
+    reader = IndexReader.open(dir);
   }
   
   public void test1StrMV() throws Exception {

Modified: lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java Fri Dec  9 13:30:38 2011
@@ -767,11 +767,11 @@ public class MemoryIndex {
     }
     
     @Override
-    public int docFreq(Term term) {
-      Info info = getInfo(term.field());
+    public int docFreq(String field, BytesRef term) {
+      Info info = getInfo(field);
       int freq = 0;
-      if (info != null) freq = info.getPositions(term.bytes()) != null ? 1 : 0;
-      if (DEBUG) System.err.println("MemoryIndexReader.docFreq: " + term + ", freq:" + freq);
+      if (info != null) freq = info.getPositions(term) != null ? 1 : 0;
+      if (DEBUG) System.err.println("MemoryIndexReader.docFreq: " + field + ":" + term + ", freq:" + freq);
       return freq;
     }
     
@@ -1112,11 +1112,6 @@ public class MemoryIndex {
       }
       return norms;
     }
-
-    @Override
-    protected void doSetNorm(int doc, String fieldName, byte value) {
-      throw new UnsupportedOperationException();
-    }
   
     @Override
     public int numDocs() {
@@ -1143,21 +1138,6 @@ public class MemoryIndex {
     }
   
     @Override
-    protected void doDelete(int docNum) {
-      throw new UnsupportedOperationException();
-    }
-  
-    @Override
-    protected void doUndeleteAll() {
-      throw new UnsupportedOperationException();
-    }
-  
-    @Override
-    protected void doCommit(Map<String,String> commitUserData) {
-      if (DEBUG) System.err.println("MemoryIndexReader.doCommit");
-    }
-  
-    @Override
     protected void doClose() {
       if (DEBUG) System.err.println("MemoryIndexReader.doClose");
     }

Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/index/MultiPassIndexSplitter.java Fri Dec  9 13:30:38 2011
@@ -49,7 +49,7 @@ public class MultiPassIndexSplitter {
   
   /**
    * Split source index into multiple parts.
-   * @param input source index, can be read-only, can have deletions, can have
+   * @param in source index, can have deletions, can have
    * multiple segments (or multiple readers).
    * @param outputs list of directories where the output parts will be stored.
    * @param seq if true, then the source index will be split into equal
@@ -57,18 +57,18 @@ public class MultiPassIndexSplitter {
    * assigned in a deterministic round-robin fashion to one of the output splits.
    * @throws IOException
    */
-  public void split(Version version, IndexReader input, Directory[] outputs, boolean seq) throws IOException {
+  public void split(Version version, IndexReader in, Directory[] outputs, boolean seq) throws IOException {
     if (outputs == null || outputs.length < 2) {
       throw new IOException("Invalid number of outputs.");
     }
-    if (input == null || input.numDocs() < 2) {
+    if (in == null || in.numDocs() < 2) {
       throw new IOException("Not enough documents for splitting");
     }
     int numParts = outputs.length;
     // wrap a potentially read-only input
     // this way we don't have to preserve original deletions because neither
     // deleteDocument(int) or undeleteAll() is applied to the wrapped input index.
-    input = new FakeDeleteIndexReader(input);
+    FakeDeleteIndexReader input = new FakeDeleteIndexReader(in);
     int maxDoc = input.maxDoc();
     int partLen = maxDoc / numParts;
     for (int i = 0; i < numParts; i++) {
@@ -143,7 +143,7 @@ public class MultiPassIndexSplitter {
           System.err.println("Invalid input index - skipping: " + file);
           continue;
         }
-        indexes.add(IndexReader.open(dir, true));
+        indexes.add(IndexReader.open(dir));
       }
     }
     if (outDir == null) {
@@ -183,7 +183,7 @@ public class MultiPassIndexSplitter {
 
     public FakeDeleteIndexReader(IndexReader in) {
       super(new SlowMultiReaderWrapper(in));
-      doUndeleteAll(); // initialize main bitset
+      undeleteAll(); // initialize main bitset
     }
 
     @Override
@@ -191,12 +191,7 @@ public class MultiPassIndexSplitter {
       return liveDocs.cardinality();
     }
 
-    /**
-     * Just removes our overlaid deletions - does not undelete the original
-     * deletions.
-     */
-    @Override
-    protected void doUndeleteAll()  {
+    void undeleteAll()  {
       final int maxDoc = in.maxDoc();
       liveDocs = new FixedBitSet(in.maxDoc());
       if (in.hasDeletions()) {
@@ -212,8 +207,7 @@ public class MultiPassIndexSplitter {
       }
     }
 
-    @Override
-    protected void doDelete(int n) {
+    void deleteDocument(int n) {
       liveDocs.clear(n);
     }
 

Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java Fri Dec  9 13:30:38 2011
@@ -78,7 +78,7 @@ public class HighFreqTerms {
       }
     }
     
-    reader = IndexReader.open(dir, true);
+    reader = IndexReader.open(dir);
     TermStats[] terms = getHighFreqTerms(reader, numTerms, field);
     if (!IncludeTermFreqs) {
       //default HighFreqTerms behavior

Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java Fri Dec  9 13:30:38 2011
@@ -69,7 +69,7 @@ public class TestIndexSplitter extends L
     String splitSegName = is.infos.info(1).name;
     is.split(destDir, new String[] {splitSegName});
     Directory fsDirDest = newFSDirectory(destDir);
-    IndexReader r = IndexReader.open(fsDirDest, true);
+    IndexReader r = IndexReader.open(fsDirDest);
     assertEquals(50, r.maxDoc());
     r.close();
     fsDirDest.close();
@@ -81,76 +81,17 @@ public class TestIndexSplitter extends L
     IndexSplitter.main(new String[] {dir.getAbsolutePath(), destDir2.getAbsolutePath(), splitSegName});
     assertEquals(4, destDir2.listFiles().length);
     Directory fsDirDest2 = newFSDirectory(destDir2);
-    r = IndexReader.open(fsDirDest2, true);
+    r = IndexReader.open(fsDirDest2);
     assertEquals(50, r.maxDoc());
     r.close();
     fsDirDest2.close();
     
     // now remove the copied segment from src
     IndexSplitter.main(new String[] {dir.getAbsolutePath(), "-d", splitSegName});
-    r = IndexReader.open(fsDir, true);
+    r = IndexReader.open(fsDir);
     assertEquals(2, r.getSequentialSubReaders().length);
     r.close();
     fsDir.close();
   }
 
-  public void testDeleteThenFullMerge() throws Exception {
-    // Create directories where the indexes will reside
-    File indexPath = new File(TEMP_DIR, "testfilesplitter");
-    _TestUtil.rmDir(indexPath);
-    indexPath.mkdirs();
-    File indexSplitPath = new File(TEMP_DIR, "testfilesplitterdest");
-    _TestUtil.rmDir(indexSplitPath);
-    indexSplitPath.mkdirs();
-    
-    // Create the original index
-    LogMergePolicy mergePolicy = new LogByteSizeMergePolicy();
-    mergePolicy.setNoCFSRatio(1);
-    IndexWriterConfig iwConfig
-        = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
-              .setOpenMode(OpenMode.CREATE)
-              .setMergePolicy(mergePolicy);
-    Directory fsDir = newFSDirectory(indexPath);
-    IndexWriter indexWriter = new IndexWriter(fsDir, iwConfig);
-    Document doc = new Document();
-    doc.add(new Field("content", "doc 1", StringField.TYPE_STORED));
-    indexWriter.addDocument(doc);
-    doc = new Document();
-    doc.add(new Field("content", "doc 2", StringField.TYPE_STORED));
-    indexWriter.addDocument(doc);
-    indexWriter.close();
-    fsDir.close();
-    
-    // Create the split index
-    IndexSplitter indexSplitter = new IndexSplitter(indexPath);
-    String splitSegName = indexSplitter.infos.info(0).name;
-    indexSplitter.split(indexSplitPath, new String[] {splitSegName});
-
-    // Delete the first document in the split index
-    Directory fsDirDest = newFSDirectory(indexSplitPath);
-    IndexReader indexReader = IndexReader.open(fsDirDest, false);
-    indexReader.deleteDocument(0);
-    assertEquals(1, indexReader.numDocs());
-    indexReader.close();
-    fsDirDest.close();
-
-    // Fully merge the split index
-    mergePolicy = new LogByteSizeMergePolicy();
-    mergePolicy.setNoCFSRatio(1);
-    iwConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random))
-                   .setOpenMode(OpenMode.APPEND)
-                   .setMergePolicy(mergePolicy);
-    fsDirDest = newFSDirectory(indexSplitPath);
-    indexWriter = new IndexWriter(fsDirDest, iwConfig);
-    indexWriter.forceMerge(1);
-    indexWriter.close();
-    fsDirDest.close();
-
-    // Read the number of docs in the index
-    fsDirDest = newFSDirectory(indexSplitPath);
-    indexReader = IndexReader.open(fsDirDest);
-	  assertEquals(1, indexReader.numDocs());
-    indexReader.close();
-    fsDirDest.close();
-  }
 }

Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/index/TestMultiPassIndexSplitter.java Fri Dec  9 13:30:38 2011
@@ -41,10 +41,10 @@ public class TestMultiPassIndexSplitter 
       doc.add(newField("f", i + " " + i, TextField.TYPE_STORED));
       w.addDocument(doc);
     }
+    w.commit();
+    w.deleteDocuments(new Term("id", "" + (NUM_DOCS-1)));
     w.close();
-    input = IndexReader.open(dir, false);
-    // delete the last doc
-    input.deleteDocument(input.maxDoc() - 1);
+    input = IndexReader.open(dir);
   }
   
   @Override
@@ -66,7 +66,7 @@ public class TestMultiPassIndexSplitter 
     };
     splitter.split(TEST_VERSION_CURRENT, input, dirs, false);
     IndexReader ir;
-    ir = IndexReader.open(dirs[0], true);
+    ir = IndexReader.open(dirs[0]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1); // rounding error
     Document doc = ir.document(0);
     assertEquals("0", doc.get("id"));
@@ -74,7 +74,7 @@ public class TestMultiPassIndexSplitter 
     assertEquals(TermsEnum.SeekStatus.NOT_FOUND, te.seekCeil(new BytesRef("1")));
     assertNotSame("1", te.term().utf8ToString());
     ir.close();
-    ir = IndexReader.open(dirs[1], true);
+    ir = IndexReader.open(dirs[1]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
     doc = ir.document(0);
     assertEquals("1", doc.get("id"));
@@ -83,7 +83,7 @@ public class TestMultiPassIndexSplitter 
 
     assertNotSame("0", te.term().utf8ToString());
     ir.close();
-    ir = IndexReader.open(dirs[2], true);
+    ir = IndexReader.open(dirs[2]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
     doc = ir.document(0);
     assertEquals("2", doc.get("id"));
@@ -111,19 +111,19 @@ public class TestMultiPassIndexSplitter 
     };
     splitter.split(TEST_VERSION_CURRENT, input, dirs, true);
     IndexReader ir;
-    ir = IndexReader.open(dirs[0], true);
+    ir = IndexReader.open(dirs[0]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
     Document doc = ir.document(0);
     assertEquals("0", doc.get("id"));
     int start = ir.numDocs();
     ir.close();
-    ir = IndexReader.open(dirs[1], true);
+    ir = IndexReader.open(dirs[1]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
     doc = ir.document(0);
     assertEquals(start + "", doc.get("id"));
     start += ir.numDocs();
     ir.close();
-    ir = IndexReader.open(dirs[2], true);
+    ir = IndexReader.open(dirs[2]);
     assertTrue(ir.numDocs() - NUM_DOCS / 3 <= 1);
     doc = ir.document(0);
     assertEquals(start + "", doc.get("id"));

Modified: lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java (original)
+++ lucene/dev/branches/lucene3622/lucene/contrib/misc/src/test/org/apache/lucene/misc/TestHighFreqTerms.java Fri Dec  9 13:30:38 2011
@@ -43,7 +43,7 @@ public class TestHighFreqTerms extends L
        TEST_VERSION_CURRENT, new MockAnalyzer(random, MockTokenizer.WHITESPACE, false))
        .setMaxBufferedDocs(2));
     indexDocs(writer);
-    reader = IndexReader.open(dir, true);
+    reader = IndexReader.open(dir);
     _TestUtil.checkIndex(dir);
   }
   

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/CheckIndex.java Fri Dec  9 13:30:38 2011
@@ -524,7 +524,7 @@ public class CheckIndex {
         }
         if (infoStream != null)
           infoStream.print("    test: open reader.........");
-        reader = SegmentReader.get(true, info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, IOContext.DEFAULT);
+        reader = SegmentReader.get(info, IndexReader.DEFAULT_TERMS_INDEX_DIVISOR, IOContext.DEFAULT);
 
         segInfoStat.openReaderPassed = true;
 

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DirectoryReader.java Fri Dec  9 13:30:38 2011
@@ -44,18 +44,12 @@ import org.apache.lucene.util.MapBackedS
  */
 class DirectoryReader extends IndexReader implements Cloneable {
   protected Directory directory;
-  protected boolean readOnly;
 
   IndexWriter writer;
 
-  private IndexDeletionPolicy deletionPolicy;
-  private Lock writeLock;
   private final SegmentInfos segmentInfos;
-  private boolean stale;
   private final int termInfosIndexDivisor;
 
-  private boolean rollbackHasChanges;
-
   private SegmentReader[] subReaders;
   private ReaderContext topLevelReaderContext;
   private int[] starts;                           // 1st docno for each segment
@@ -63,41 +57,24 @@ class DirectoryReader extends IndexReade
   private int numDocs = -1;
   private boolean hasDeletions = false;
 
-  // Max version in index as of when we opened; this can be
-  // > our current segmentInfos version in case we were
-  // opened on a past IndexCommit:
-  private long maxIndexVersion;
-
   private final boolean applyAllDeletes;
 
-//  static IndexReader open(final Directory directory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly,
-//      final int termInfosIndexDivisor) throws CorruptIndexException, IOException {
-//    return open(directory, deletionPolicy, commit, readOnly, termInfosIndexDivisor, null);
-//  }
-  
-  static IndexReader open(final Directory directory, final IndexDeletionPolicy deletionPolicy, final IndexCommit commit, final boolean readOnly,
+  static IndexReader open(final Directory directory, final IndexCommit commit,
                           final int termInfosIndexDivisor) throws CorruptIndexException, IOException {
     return (IndexReader) new SegmentInfos.FindSegmentsFile(directory) {
       @Override
       protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException {
         SegmentInfos infos = new SegmentInfos();
         infos.read(directory, segmentFileName);
-        return new DirectoryReader(directory, infos, deletionPolicy, readOnly, termInfosIndexDivisor);
+        return new DirectoryReader(directory, infos, termInfosIndexDivisor);
       }
     }.run(commit);
   }
-
-  /** Construct reading the named set of readers. */
-//  DirectoryReader(Directory directory, SegmentInfos sis, IndexDeletionPolicy deletionPolicy, boolean readOnly, int termInfosIndexDivisor) throws IOException {
-//    this(directory, sis, deletionPolicy, readOnly, termInfosIndexDivisor, null);
-//  }
   
   /** Construct reading the named set of readers. */
-  DirectoryReader(Directory directory, SegmentInfos sis, IndexDeletionPolicy deletionPolicy, boolean readOnly, int termInfosIndexDivisor) throws IOException {
+  DirectoryReader(Directory directory, SegmentInfos sis, int termInfosIndexDivisor) throws IOException {
     this.directory = directory;
-    this.readOnly = readOnly;
     this.segmentInfos = sis;
-    this.deletionPolicy = deletionPolicy;
     this.termInfosIndexDivisor = termInfosIndexDivisor;
     readerFinishedListeners = new MapBackedSet<ReaderFinishedListener>(new ConcurrentHashMap<ReaderFinishedListener,Boolean>());
     applyAllDeletes = false;
@@ -111,7 +88,7 @@ class DirectoryReader extends IndexReade
     for (int i = sis.size()-1; i >= 0; i--) {
       boolean success = false;
       try {
-        readers[i] = SegmentReader.get(readOnly, sis.info(i), termInfosIndexDivisor, IOContext.READ);
+        readers[i] = SegmentReader.get(sis.info(i), termInfosIndexDivisor, IOContext.READ);
         readers[i].readerFinishedListeners = readerFinishedListeners;
         success = true;
       } finally {
@@ -134,7 +111,6 @@ class DirectoryReader extends IndexReade
   // Used by near real-time search
   DirectoryReader(IndexWriter writer, SegmentInfos infos, boolean applyAllDeletes) throws IOException {
     this.directory = writer.getDirectory();
-    this.readOnly = true;
     this.applyAllDeletes = applyAllDeletes;       // saved for reopen
 
     this.termInfosIndexDivisor = writer.getConfig().getReaderTermsIndexDivisor();
@@ -186,9 +162,8 @@ class DirectoryReader extends IndexReade
 
   /** This constructor is only used for {@link #doOpenIfChanged()} */
   DirectoryReader(Directory directory, SegmentInfos infos, SegmentReader[] oldReaders,
-                  boolean readOnly, boolean doClone, int termInfosIndexDivisor, Collection<ReaderFinishedListener> readerFinishedListeners) throws IOException {
+                  boolean doClone, int termInfosIndexDivisor, Collection<ReaderFinishedListener> readerFinishedListeners) throws IOException {
     this.directory = directory;
-    this.readOnly = readOnly;
     this.segmentInfos = infos;
     this.termInfosIndexDivisor = termInfosIndexDivisor;
     this.readerFinishedListeners = readerFinishedListeners;
@@ -231,12 +206,12 @@ class DirectoryReader extends IndexReade
           assert !doClone;
 
           // this is a new reader; in case we hit an exception we can close it safely
-          newReader = SegmentReader.get(readOnly, infos.info(i), termInfosIndexDivisor, IOContext.READ);
+          newReader = SegmentReader.get(infos.info(i), termInfosIndexDivisor, IOContext.READ);
           newReader.readerFinishedListeners = readerFinishedListeners;
           readerShared[i] = false;
           newReaders[i] = newReader;
         } else {
-          newReader = newReaders[i].reopenSegment(infos.info(i), doClone, readOnly);
+          newReader = newReaders[i].reopenSegment(infos.info(i), doClone);
           if (newReader == null) {
             // this reader will be shared between the old and the new one,
             // so we must incRef it
@@ -281,9 +256,6 @@ class DirectoryReader extends IndexReade
   @Override
   public String toString() {
     final StringBuilder buffer = new StringBuilder();
-    if (hasChanges) {
-      buffer.append("*");
-    }
     buffer.append(getClass().getSimpleName());
     buffer.append('(');
     final String segmentsFile = segmentInfos.getCurrentSegmentFileName();
@@ -323,10 +295,6 @@ class DirectoryReader extends IndexReade
       }
     }
     starts[subReaders.length] = maxDoc;
-
-    if (!readOnly) {
-      maxIndexVersion = SegmentInfos.readCurrentVersion(directory);
-    }
   }
 
   @Override
@@ -337,69 +305,46 @@ class DirectoryReader extends IndexReade
   @Override
   public final synchronized Object clone() {
     try {
-      return clone(readOnly); // Preserve current readOnly
+      DirectoryReader newReader = doOpenIfChanged((SegmentInfos) segmentInfos.clone(), true);
+      newReader.writer = writer;
+      newReader.hasDeletions = hasDeletions;
+      assert newReader.readerFinishedListeners != null;
+      return newReader;
     } catch (Exception ex) {
       throw new RuntimeException(ex);
     }
   }
 
   @Override
-  public final synchronized IndexReader clone(boolean openReadOnly) throws CorruptIndexException, IOException {
-    // doOpenIfChanged calls ensureOpen
-    DirectoryReader newReader = doOpenIfChanged((SegmentInfos) segmentInfos.clone(), true, openReadOnly);
-
-    if (this != newReader) {
-      newReader.deletionPolicy = deletionPolicy;
-    }
-    newReader.writer = writer;
-    // If we're cloning a non-readOnly reader, move the
-    // writeLock (if there is one) to the new reader:
-    if (!openReadOnly && writeLock != null) {
-      // In near real-time search, reader is always readonly
-      assert writer == null;
-      newReader.writeLock = writeLock;
-      newReader.hasChanges = hasChanges;
-      newReader.hasDeletions = hasDeletions;
-      writeLock = null;
-      hasChanges = false;
-    }
-    assert newReader.readerFinishedListeners != null;
-
-    return newReader;
-  }
-
-  @Override
   protected final IndexReader doOpenIfChanged() throws CorruptIndexException, IOException {
-    // Preserve current readOnly
-    return doOpenIfChanged(readOnly, null);
-  }
-
-  @Override
-  protected final IndexReader doOpenIfChanged(boolean openReadOnly) throws CorruptIndexException, IOException {
-    return doOpenIfChanged(openReadOnly, null);
+    return doOpenIfChanged(null);
   }
 
   @Override
   protected final IndexReader doOpenIfChanged(final IndexCommit commit) throws CorruptIndexException, IOException {
-    return doOpenIfChanged(true, commit);
+    ensureOpen();
+
+    // If we were obtained by writer.getReader(), re-ask the
+    // writer to get a new reader.
+    if (writer != null) {
+      return doOpenFromWriter(commit);
+    } else {
+      return doOpenNoWriter(commit);
+    }
   }
 
   @Override
   protected final IndexReader doOpenIfChanged(IndexWriter writer, boolean applyAllDeletes) throws CorruptIndexException, IOException {
+    ensureOpen();
     if (writer == this.writer && applyAllDeletes == this.applyAllDeletes) {
-      return doOpenIfChanged();
-    } else {    
+      return doOpenFromWriter(null);
+    } else {
+      // fail by calling supers impl throwing UOE
       return super.doOpenIfChanged(writer, applyAllDeletes);
     }
   }
 
-  private final IndexReader doOpenFromWriter(boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
-    assert readOnly;
-
-    if (!openReadOnly) {
-      throw new IllegalArgumentException("a reader obtained from IndexWriter.getReader() can only be reopened with openReadOnly=true (got false)");
-    }
-
+  private final IndexReader doOpenFromWriter(IndexCommit commit) throws CorruptIndexException, IOException {
     if (commit != null) {
       throw new IllegalArgumentException("a reader obtained from IndexWriter.getReader() cannot currently accept a commit");
     }
@@ -420,56 +365,18 @@ class DirectoryReader extends IndexReade
     return reader;
   }
 
-  private IndexReader doOpenIfChanged(final boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
-    ensureOpen();
-
-    assert commit == null || openReadOnly;
-
-    // If we were obtained by writer.getReader(), re-ask the
-    // writer to get a new reader.
-    if (writer != null) {
-      return doOpenFromWriter(openReadOnly, commit);
-    } else {
-      return doOpenNoWriter(openReadOnly, commit);
-    }
-  }
-
-  private synchronized IndexReader doOpenNoWriter(final boolean openReadOnly, IndexCommit commit) throws CorruptIndexException, IOException {
+  private synchronized IndexReader doOpenNoWriter(IndexCommit commit) throws CorruptIndexException, IOException {
 
     if (commit == null) {
-      if (hasChanges) {
-        // We have changes, which means we are not readOnly:
-        assert readOnly == false;
-        // and we hold the write lock:
-        assert writeLock != null;
-        // so no other writer holds the write lock, which
-        // means no changes could have been done to the index:
-        assert isCurrent();
-
-        if (openReadOnly) {
-          return clone(openReadOnly);
-        } else {
-          return null;
-        }
-      } else if (isCurrent()) {
-        if (openReadOnly != readOnly) {
-          // Just fallback to clone
-          return clone(openReadOnly);
-        } else {
-          return null;
-        }
+      if (isCurrent()) {
+        return null;
       }
     } else {
       if (directory != commit.getDirectory()) {
         throw new IOException("the specified commit does not match the specified Directory");
       }
       if (segmentInfos != null && commit.getSegmentsFileName().equals(segmentInfos.getCurrentSegmentFileName())) {
-        if (readOnly != openReadOnly) {
-          // Just fallback to clone
-          return clone(openReadOnly);
-        } else {
-          return null;
-        }
+        return null;
       }
     }
 
@@ -478,13 +385,13 @@ class DirectoryReader extends IndexReade
       protected Object doBody(String segmentFileName) throws CorruptIndexException, IOException {
         final SegmentInfos infos = new SegmentInfos();
         infos.read(directory, segmentFileName);
-        return doOpenIfChanged(infos, false, openReadOnly);
+        return doOpenIfChanged(infos, false);
       }
     }.run(commit);
   }
 
-  private synchronized DirectoryReader doOpenIfChanged(SegmentInfos infos, boolean doClone, boolean openReadOnly) throws CorruptIndexException, IOException {
-    return new DirectoryReader(directory, infos, subReaders, openReadOnly, doClone, termInfosIndexDivisor, readerFinishedListeners);
+  private synchronized DirectoryReader doOpenIfChanged(SegmentInfos infos, boolean doClone) throws CorruptIndexException, IOException {
+    return new DirectoryReader(directory, infos, subReaders, doClone, termInfosIndexDivisor, readerFinishedListeners);
   }
 
   /** Version number when this IndexReader was opened. */
@@ -535,23 +442,6 @@ class DirectoryReader extends IndexReade
     return hasDeletions;
   }
 
-  @Override
-  protected void doDelete(int n) throws CorruptIndexException, IOException {
-    numDocs = -1;                             // invalidate cache
-    int i = readerIndex(n);                   // find segment num
-    subReaders[i].deleteDocument(n - starts[i]);      // dispatch to segment reader
-    hasDeletions = true;
-  }
-
-  @Override
-  protected void doUndeleteAll() throws CorruptIndexException, IOException {
-    for (int i = 0; i < subReaders.length; i++)
-      subReaders[i].undeleteAll();
-
-    hasDeletions = false;
-    numDocs = -1;                                 // invalidate cache
-  }
-
   private int readerIndex(int n) {    // find reader for doc n:
     return readerIndex(n, this.starts, this.subReaders.length);
   }
@@ -593,22 +483,6 @@ class DirectoryReader extends IndexReade
   }
 
   @Override
-  protected void doSetNorm(int n, String field, byte value)
-    throws CorruptIndexException, IOException {
-    int i = readerIndex(n);                           // find segment num
-    subReaders[i].setNorm(n-starts[i], field, value); // dispatch
-  }
-
-  @Override
-  public int docFreq(Term t) throws IOException {
-    ensureOpen();
-    int total = 0;          // sum freqs in segments
-    for (int i = 0; i < subReaders.length; i++)
-      total += subReaders[i].docFreq(t);
-    return total;
-  }
-
-  @Override
   public int docFreq(String field, BytesRef term) throws IOException {
     ensureOpen();
     int total = 0;          // sum freqs in segments
@@ -623,150 +497,6 @@ class DirectoryReader extends IndexReade
     throw new UnsupportedOperationException("please use MultiFields.getFields, or wrap your IndexReader with SlowMultiReaderWrapper, if you really need a top level Fields");
   }
 
-  /**
-   * Tries to acquire the WriteLock on this directory. this method is only valid if this IndexReader is directory
-   * owner.
-   *
-   * @throws StaleReaderException  if the index has changed since this reader was opened
-   * @throws CorruptIndexException if the index is corrupt
-   * @throws org.apache.lucene.store.LockObtainFailedException
-   *                               if another writer has this index open (<code>write.lock</code> could not be
-   *                               obtained)
-   * @throws IOException           if there is a low-level IO error
-   */
-  @Override
-  protected void acquireWriteLock() throws StaleReaderException, CorruptIndexException, LockObtainFailedException, IOException {
-
-    if (readOnly) {
-      // NOTE: we should not reach this code w/ the core
-      // IndexReader classes; however, an external subclass
-      // of IndexReader could reach this.
-      throw new UnsupportedOperationException("This IndexReader cannot make any changes to the index (it was opened with readOnly = true)");
-    }
-
-    if (segmentInfos != null) {
-      ensureOpen();
-      if (stale)
-        throw new StaleReaderException("IndexReader out of date and no longer valid for delete, undelete, or setNorm operations");
-
-      if (writeLock == null) {
-        Lock writeLock = directory.makeLock(IndexWriter.WRITE_LOCK_NAME);
-        if (!writeLock.obtain(IndexWriterConfig.WRITE_LOCK_TIMEOUT)) // obtain write lock
-          throw new LockObtainFailedException("Index locked for write: " + writeLock);
-        this.writeLock = writeLock;
-
-        // we have to check whether index has changed since this reader was opened.
-        // if so, this reader is no longer valid for deletion
-        if (SegmentInfos.readCurrentVersion(directory) > maxIndexVersion) {
-          stale = true;
-          this.writeLock.release();
-          this.writeLock = null;
-          throw new StaleReaderException("IndexReader out of date and no longer valid for delete, undelete, or setNorm operations");
-        }
-      }
-    }
-  }
-
-  /**
-   * Commit changes resulting from delete, undeleteAll, or setNorm operations
-   * <p/>
-   * If an exception is hit, then either no changes or all changes will have been committed to the index (transactional
-   * semantics).
-   *
-   * @throws IOException if there is a low-level IO error
-   */
-  @Override
-  protected void doCommit(Map<String,String> commitUserData) throws IOException {
-    // poll subreaders for changes
-    for (int i = 0; !hasChanges && i < subReaders.length; i++) {
-      hasChanges |= subReaders[i].hasChanges;
-    }
-    
-    if (hasChanges) {
-      segmentInfos.setUserData(commitUserData);
-      // Default deleter (for backwards compatibility) is
-      // KeepOnlyLastCommitDeleter:
-      // TODO: Decide what to do with InfoStream here? Use default or keep NO_OUTPUT?
-      IndexFileDeleter deleter = new IndexFileDeleter(directory,
-                                                      deletionPolicy == null ? new KeepOnlyLastCommitDeletionPolicy() : deletionPolicy,
-                                                      segmentInfos, InfoStream.NO_OUTPUT, null);
-      segmentInfos.updateGeneration(deleter.getLastSegmentInfos());
-      segmentInfos.changed();
-
-      // Checkpoint the state we are about to change, in
-      // case we have to roll back:
-      startCommit();
-
-      final List<SegmentInfo> rollbackSegments = segmentInfos.createBackupSegmentInfos(false);
-
-      boolean success = false;
-      try {
-        for (int i = 0; i < subReaders.length; i++)
-          subReaders[i].commit();
-
-        // Remove segments that contain only 100% deleted
-        // docs:
-        segmentInfos.pruneDeletedSegments();
-
-        // Sync all files we just wrote
-        directory.sync(segmentInfos.files(directory, false));
-        segmentInfos.commit(directory, segmentInfos.codecFormat());
-        success = true;
-      } finally {
-
-        if (!success) {
-
-          // Rollback changes that were made to
-          // SegmentInfos but failed to get [fully]
-          // committed.  This way this reader instance
-          // remains consistent (matched to what's
-          // actually in the index):
-          rollbackCommit();
-
-          // Recompute deletable files & remove them (so
-          // partially written .del files, etc, are
-          // removed):
-          deleter.refresh();
-
-          // Restore all SegmentInfos (in case we pruned some)
-          segmentInfos.rollbackSegmentInfos(rollbackSegments);
-        }
-      }
-
-      // Have the deleter remove any now unreferenced
-      // files due to this commit:
-      deleter.checkpoint(segmentInfos, true);
-      deleter.close();
-
-      maxIndexVersion = segmentInfos.getVersion();
-
-      if (writeLock != null) {
-        writeLock.release();  // release write lock
-        writeLock = null;
-      }
-    }
-    hasChanges = false;
-  }
-
-  void startCommit() {
-    rollbackHasChanges = hasChanges;
-    for (int i = 0; i < subReaders.length; i++) {
-      subReaders[i].startCommit();
-    }
-  }
-
-  void rollbackCommit() {
-    hasChanges = rollbackHasChanges;
-    for (int i = 0; i < subReaders.length; i++) {
-      subReaders[i].rollbackCommit();
-    }
-  }
-
-  @Override
-  public long getUniqueTermCount() throws IOException {
-    return -1;
-  }
-
   @Override
   public Map<String,String> getCommitUserData() {
     ensureOpen();

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java Fri Dec  9 13:30:38 2011
@@ -52,7 +52,7 @@ import org.apache.lucene.util.InfoStream
  * are processing the document).
  *
  * Other consumers, eg {@link FreqProxTermsWriter} and
- * {@link NormsWriter}, buffer bytes in RAM and flush only
+ * {@link NormsConsumer}, buffer bytes in RAM and flush only
  * when a new segment is produced.
 
  * Once we have used our allowed RAM buffer, or the number

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Fri Dec  9 13:30:38 2011
@@ -79,7 +79,7 @@ public class DocumentsWriterPerThread {
 
       final InvertedDocConsumer  termsHash = new TermsHash(documentsWriterPerThread, freqProxWriter, true,
                                                            new TermsHash(documentsWriterPerThread, termVectorsWriter, false, null));
-      final NormsWriter normsWriter = new NormsWriter();
+      final NormsConsumer normsWriter = new NormsConsumer(documentsWriterPerThread);
       final DocInverter docInverter = new DocInverter(documentsWriterPerThread.docState, termsHash, normsWriter);
       return new DocFieldProcessor(documentsWriterPerThread, docInverter);
     }

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FieldInfos.java Fri Dec  9 13:30:38 2011
@@ -417,7 +417,7 @@ public final class FieldInfos implements
 
   public boolean hasNorms() {
     for (FieldInfo fi : this) {
-      if (!fi.omitNorms) {
+      if (fi.isIndexed && !fi.omitNorms) {
         return true;
       }
     }

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/FilterIndexReader.java Fri Dec  9 13:30:38 2011
@@ -277,8 +277,6 @@ public class FilterIndexReader extends I
 
   /**
    * <p>Construct a FilterIndexReader based on the specified base reader.
-   * Directory locking for delete, undeleteAll, and setNorm operations is
-   * left to the base reader.</p>
    * <p>Note that base reader is closed if this FilterIndexReader is closed.</p>
    * @param in specified base reader.
    */
@@ -332,9 +330,6 @@ public class FilterIndexReader extends I
   }
 
   @Override
-  protected void doUndeleteAll() throws CorruptIndexException, IOException {in.undeleteAll();}
-
-  @Override
   public boolean hasNorms(String field) throws IOException {
     ensureOpen();
     return in.hasNorms(field);
@@ -347,29 +342,10 @@ public class FilterIndexReader extends I
   }
 
   @Override
-  protected void doSetNorm(int d, String f, byte b) throws CorruptIndexException, IOException {
-    in.setNorm(d, f, b);
-  }
-
-  @Override
-  public int docFreq(Term t) throws IOException {
-    ensureOpen();
-    return in.docFreq(t);
-  }
-
-  @Override
   public int docFreq(String field, BytesRef t) throws IOException {
     ensureOpen();
     return in.docFreq(field, t);
   }
-
-  @Override
-  protected void doDelete(int n) throws  CorruptIndexException, IOException { in.deleteDocument(n); }
-  
-  @Override
-  protected void doCommit(Map<String,String> commitUserData) throws IOException {
-    in.commit(commitUserData);
-  }
   
   @Override
   protected void doClose() throws IOException {
@@ -450,4 +426,14 @@ public class FilterIndexReader extends I
     ensureOpen();
     return in.perDocValues();
   }
+
+  @Override
+  public IndexCommit getIndexCommit() throws IOException {
+    return in.getIndexCommit();
+  }
+
+  @Override
+  public int getTermInfosIndexDivisor() {
+    return in.getTermInfosIndexDivisor();
+  }  
 }

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri Dec  9 13:30:38 2011
@@ -179,7 +179,7 @@ final class IndexFileDeleter {
             }
             sis = null;
           } catch (IOException e) {
-            if (SegmentInfos.generationFromSegmentsFileName(fileName) <= currentGen) {
+            if (SegmentInfos.generationFromSegmentsFileName(fileName) <= currentGen && directory.fileLength(fileName) > 0) {
               throw e;
             } else {
               // Most likely we are opening an index that

Modified: lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java?rev=1212405&r1=1212404&r2=1212405&view=diff
==============================================================================
--- lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java (original)
+++ lucene/dev/branches/lucene3622/lucene/src/java/org/apache/lucene/index/IndexFileNames.java Fri Dec  9 13:30:38 2011
@@ -17,8 +17,6 @@ package org.apache.lucene.index;
  * limitations under the License.
  */
 
-import java.util.regex.Pattern;
-
 import org.apache.lucene.index.codecs.Codec;  // for javadocs
 
 // TODO: put all files under codec and remove all the static extensions here
@@ -49,9 +47,6 @@ public final class IndexFileNames {
   
   /** Name of the generation reference file name */
   public static final String SEGMENTS_GEN = "segments." +  GEN_EXTENSION;
-  
-  /** Extension of norms file */
-  public static final String NORMS_EXTENSION = "nrm";
 
   /** Extension of compound file */
   public static final String COMPOUND_FILE_EXTENSION = "cfs";
@@ -65,9 +60,6 @@ public final class IndexFileNames {
   /** Extension of deletes */
   public static final String DELETES_EXTENSION = "del";
 
-  /** Extension of separate norms */
-  public static final String SEPARATE_NORMS_EXTENSION = "s";
-
   /**
    * This array contains all filename extensions used by
    * Lucene's index files, with one exception, namely the
@@ -80,14 +72,9 @@ public final class IndexFileNames {
     COMPOUND_FILE_ENTRIES_EXTENSION,
     DELETES_EXTENSION,
     GEN_EXTENSION,
-    NORMS_EXTENSION,
     COMPOUND_FILE_STORE_EXTENSION,
   };
 
-  public static final String[] NON_STORE_INDEX_EXTENSIONS = new String[] {
-    NORMS_EXTENSION
-  };
-
   /**
    * Computes the full file name from base, extension and generation. If the
    * generation is -1, the file name is null. If it's 0, the file name is
@@ -188,17 +175,5 @@ public final class IndexFileNames {
       filename = filename.substring(0, idx);
     }
     return filename;
-  }
-  
-  /**
-   * Returns true if the given filename ends with the separate norms file
-   * pattern: {@code SEPARATE_NORMS_EXTENSION + "[0-9]+"}.
-   */
-  public static boolean isSeparateNormsFile(String filename) {
-    int idx = filename.lastIndexOf('.');
-    if (idx == -1) return false;
-    String ext = filename.substring(idx + 1);
-    return Pattern.matches(SEPARATE_NORMS_EXTENSION + "[0-9]+", ext);
-  }
-  
+  }  
 }