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

svn commit: r1372438 [1/5] - in /lucene/dev/branches/lucene3312: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/maven/ dev-tools/maven/solr/ dev-tools/maven/solr/contrib/analysis-extras/ dev-tools/maven/solr/contrib/clusteri...

Author: uschindler
Date: Mon Aug 13 14:18:26 2012
New Revision: 1372438

URL: http://svn.apache.org/viewvc?rev=1372438&view=rev
Log:
LUCENE-3312: Merged revision(s) 1371132-1372428 from lucene/dev/trunk:
Add support to also reload HashFunctions when Solr boots (otherwise codecs using new hash functions may fail to load).
We may need a better "automatic" reloading with one method call, that reloads all NamedSPILoaders. I will think about it and open issue. Solr could then only call NamedSPILoader.reloadAll(), so all instantiated ones get reloaded automatically. Currently its to risky to add new SPIs without Solr support (because it cannot be tested).
........
LUCENE-4298: MultiFields.getTermDocsEnum(Reader,Bits,String,BytesRef) did not work at all
........
SOLR-3715: remove sync around tlog serialization
........
fix test msg
........
add recovery strat to commented out list of log configs for tests
........
change log format - core= rather than Core:
........
add some tests mixing up payload options
........
tests: specify a seed to Random()
........
tests: use random seed of doc base
........
set the SVN variables so this task can build the unsigned release
........
Remove smoke again, this is now a new ReleaseNightly job on ASF Jenkins (without scripts, only ANT). I will later remove the artifact building from the standard nightly scripts, too. Those will now only run tests and clover.
........
Smoketester should also run with OpenJDK to be able to run on FreeBSD
........
clean up BS2's Coordinator, use ctor instead of init, make coordFactors final
........
LUCENE-4300: BooleanQuery's rewrite was unsafe if coord(1,1) != 1
........
SOLR-3725: fix package-local-src-tgz to not bring in jars/binary content
........
LUCENE-4299: add Terms hasPositions/hasOffsets, so you know what features a docs TVs have
........
ignore silly bugs in sun's regex impl
........
LUCENE-4187: Die, shell scripts, die, die, die!
........
LUCENE-4187: Allow disabling validation tasks and javadocs-linting from jenkins
........
nuke useless scripts - part #1
........
LUCENE-4187: Merge clover reports of Lucene/Solr for easier and more useful Jenkins reporting
........
LUCENE-4187: Remove remaining clover reference
........
LUCENE-4187: Add jenkins clover task
........
LUCENE-4187: Nuke remaining shell scripts

........
LUCENE-4187: exclude backwards (when it comes)
........
LUCENE-4187: simplier pattern
........
LUCENE-4187: Fix title for clover
........
LUCENE-4187: Make clover configuration for jenkins fixed and faster
........
Don't allow negatives in the positions file
........
LUCENE-1888: added option to store payloads on the term vectors
........
throw IllegalArgumentException if you try to index term vector offsets/positions when term vectors are not indexed, or if you try to index term vectors when field is not index
........
fix test to actually compare index1 vs index2, not index1 against itself
........
LUCENE-3985: Upgrade to randomizedtesting 2.0.0. Added support for thread leak detection. Added support for suite timeouts. (Dawid Weiss)
........
fix test bug
........
re-enable test
........
Allow better debugging this test
........
fix clustering and DIH problems with conflicting servlet-api dependencies by making scope be provided in solr's test-framework POM
........
revisit payloads API in DocsAndPositionsEnum
........
maven build: reduce solr test logging output, to allow Jenkins mailer to succeed
........
disable test timeouts until nightly builds have been addressed
........
Fix test failure caused in Maven, because test-framework classes are packaged in JAR.
........

Added:
    lucene/dev/branches/lucene3312/build-clover.xml
      - copied unchanged from r1372428, lucene/dev/trunk/build-clover.xml
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/maven.testlogging.properties
      - copied unchanged from r1372428, lucene/dev/trunk/dev-tools/maven/solr/maven.testlogging.properties
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/MergedIterator.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/MergedIterator.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/UnmodifiableIterator.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/util/UnmodifiableIterator.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/TestWorstCaseTestBehavior.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/TestWorstCaseTestBehavior.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestPayloadsOnVectors.java
    lucene/dev/branches/lucene3312/lucene/licenses/junit4-ant-2.0.0.rc5.jar.sha1
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/licenses/junit4-ant-2.0.0.rc5.jar.sha1
    lucene/dev/branches/lucene3312/lucene/licenses/randomizedtesting-runner-2.0.0.rc5.jar.sha1
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/licenses/randomizedtesting-runner-2.0.0.rc5.jar.sha1
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/QuickPatchThreadsFilter.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TimeUnits.java
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/util/TimeUnits.java
    lucene/dev/branches/lucene3312/lucene/tools/forbiddenApis/executors.txt
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/tools/forbiddenApis/executors.txt
    lucene/dev/branches/lucene3312/lucene/tools/junit4/logging.properties
      - copied unchanged from r1372428, lucene/dev/trunk/lucene/tools/junit4/logging.properties
    lucene/dev/branches/lucene3312/solr/solrj/src/java/org/apache/solr/common/util/SolrjNamedThreadFactory.java
      - copied unchanged from r1372428, lucene/dev/trunk/solr/solrj/src/java/org/apache/solr/common/util/SolrjNamedThreadFactory.java
    lucene/dev/branches/lucene3312/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
      - copied unchanged from r1372428, lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/SolrIgnoredThreadsFilter.java
    lucene/dev/branches/lucene3312/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java
      - copied unchanged from r1372428, lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/util/RevertDefaultThreadHandlerRule.java
Removed:
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/FieldsEnum.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/MultiFieldsEnum.java
    lucene/dev/branches/lucene3312/lucene/licenses/junit4-ant-1.6.0.jar.sha1
    lucene/dev/branches/lucene3312/lucene/licenses/randomizedtesting-runner-1.6.0.jar.sha1
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleNoInstanceHooksOverrides.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleNoStaticHooksShadowing.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleReportUncaughtExceptions.java
Modified:
    lucene/dev/branches/lucene3312/   (props changed)
    lucene/dev/branches/lucene3312/build.xml
    lucene/dev/branches/lucene3312/dev-tools/   (props changed)
    lucene/dev/branches/lucene3312/dev-tools/eclipse/dot.classpath
    lucene/dev/branches/lucene3312/dev-tools/idea/.idea/libraries/JUnit.xml
    lucene/dev/branches/lucene3312/dev-tools/maven/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/clustering/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler-extras/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/extraction/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/langid/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/uima/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/velocity/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/core/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/maven/solr/test-framework/pom.xml.template
    lucene/dev/branches/lucene3312/dev-tools/scripts/smokeTestRelease.py
    lucene/dev/branches/lucene3312/lucene/   (props changed)
    lucene/dev/branches/lucene3312/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/MIGRATE.txt   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/analysis/   (props changed)
    lucene/dev/branches/lucene3312/lucene/analysis/common/   (props changed)
    lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestAllAnalyzersHaveFactories.java
    lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java
    lucene/dev/branches/lucene3312/lucene/benchmark/   (props changed)
    lucene/dev/branches/lucene3312/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
    lucene/dev/branches/lucene3312/lucene/build.xml   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/common-build.xml   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/core/   (props changed)
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/PostingsConsumer.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/TermVectorsWriter.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/bloom/BloomFilteringPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40PostingsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/lucene40/Lucene40TermVectorsWriter.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/lucene40/package.html
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/memory/DirectPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/memory/MemoryPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/perfield/PerFieldPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/pulsing/PulsingPostingsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/sep/SepPostingsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextFieldsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/simpletext/SimpleTextTermVectorsWriter.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/document/FieldType.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/CoalescedDeletes.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/DocValues.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/Fields.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/FilterAtomicReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/IndexableFieldType.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/MergeState.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/MultiFields.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/ParallelAtomicReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/TermVectorsConsumerPerField.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/index/Terms.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/BooleanScorer2.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/MultiPhraseQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/payloads/PayloadTermQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/SpanPositionCheckQuery.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/Spans.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/search/spans/TermSpans.java
    lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/util/hash/HashFunction.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestCodecs.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDocCount.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDocumentWriter.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDocumentsWriterStallControl.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestDuelingCodecs.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestFilterAtomicReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestIndexableField.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestMultiFields.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestParallelTermEnum.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPayloads.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPostingsOffsets.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestPrefixCodedTerms.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestReaderClosed.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestSegmentReader.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestStressIndexing2.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/index/TestSumDocFreq.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/FieldCacheRewriteMethod.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestMultiThreadTermVectors.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestSort.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/TestTermVectors.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
    lucene/dev/branches/lucene3312/lucene/core/src/test/org/apache/lucene/util/TestWeakIdentityMap.java
    lucene/dev/branches/lucene3312/lucene/facet/   (props changed)
    lucene/dev/branches/lucene3312/lucene/facet/src/java/org/apache/lucene/facet/search/PayloadIterator.java
    lucene/dev/branches/lucene3312/lucene/highlighter/   (props changed)
    lucene/dev/branches/lucene3312/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenSources.java
    lucene/dev/branches/lucene3312/lucene/highlighter/src/java/org/apache/lucene/search/highlight/TokenStreamFromTermPositionVector.java
    lucene/dev/branches/lucene3312/lucene/ivy-settings.xml   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/licenses/   (props changed)
    lucene/dev/branches/lucene3312/lucene/memory/   (props changed)
    lucene/dev/branches/lucene3312/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
    lucene/dev/branches/lucene3312/lucene/misc/   (props changed)
    lucene/dev/branches/lucene3312/lucene/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java
    lucene/dev/branches/lucene3312/lucene/module-build.xml   (contents, props changed)
    lucene/dev/branches/lucene3312/lucene/suggest/   (props changed)
    lucene/dev/branches/lucene3312/lucene/suggest/src/test/org/apache/lucene/search/spell/TestSpellChecker.java
    lucene/dev/branches/lucene3312/lucene/test-framework/   (props changed)
    lucene/dev/branches/lucene3312/lucene/test-framework/ivy.xml
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/asserting/AssertingPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/codecs/ramonly/RAMOnlyPostingsFormat.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/AssertingAtomicReader.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/index/FieldFilterAtomicReader.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/LuceneJUnit3MethodProvider.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/TestRuleAssertionsRequired.java
    lucene/dev/branches/lucene3312/lucene/test-framework/src/java/org/apache/lucene/util/_TestUtil.java
    lucene/dev/branches/lucene3312/lucene/tools/   (props changed)
    lucene/dev/branches/lucene3312/lucene/tools/custom-tasks.xml
    lucene/dev/branches/lucene3312/solr/   (props changed)
    lucene/dev/branches/lucene3312/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/lucene3312/solr/build.xml
    lucene/dev/branches/lucene3312/solr/common-build.xml   (contents, props changed)
    lucene/dev/branches/lucene3312/solr/core/   (props changed)
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrCore.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/SnapPuller.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/component/TermVectorComponent.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/handler/loader/JavabinLoader.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/internal/csv/ExtendedBufferedReader.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/search/ExtendedDismaxQParserPlugin.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/update/CommitTracker.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/update/TransactionLog.java
    lucene/dev/branches/lucene3312/solr/core/src/java/org/apache/solr/util/FastWriter.java
    lucene/dev/branches/lucene3312/solr/core/src/test-files/solr/collection1/conf/schema.xml
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/SolrInfoMBeanTest.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/cloud/RecoveryZkTest.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/cloud/TestMultiCoreConfBootstrap.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
    lucene/dev/branches/lucene3312/solr/core/src/test/org/apache/solr/search/TestSolrJ.java
    lucene/dev/branches/lucene3312/solr/solrj/   (props changed)
    lucene/dev/branches/lucene3312/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrServer.java
    lucene/dev/branches/lucene3312/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
    lucene/dev/branches/lucene3312/solr/solrj/src/java/org/apache/solr/common/util/FastOutputStream.java
    lucene/dev/branches/lucene3312/solr/solrj/src/java/org/apache/zookeeper/SolrZooKeeper.java
    lucene/dev/branches/lucene3312/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java
    lucene/dev/branches/lucene3312/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
    lucene/dev/branches/lucene3312/solr/test-framework/   (props changed)
    lucene/dev/branches/lucene3312/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
    lucene/dev/branches/lucene3312/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
    lucene/dev/branches/lucene3312/solr/test-framework/src/java/org/apache/solr/util/AbstractSolrTestCase.java
    lucene/dev/branches/lucene3312/solr/testlogging.properties   (contents, props changed)

Modified: lucene/dev/branches/lucene3312/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/build.xml?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/build.xml (original)
+++ lucene/dev/branches/lucene3312/build.xml Mon Aug 13 14:18:26 2012
@@ -51,11 +51,28 @@
     </sequential>
   </target>
 
-  <target name="validate" description="Validate dependencies, licenses, etc.">
-    <sequential><subant target="validate" inheritall="false" failonerror="true">
-        <fileset dir="lucene" includes="build.xml" />
-        <fileset dir="solr" includes="build.xml" />
-      </subant></sequential>
+  <target name="validate" description="Validate dependencies, licenses, etc." depends="-validate-source-patterns">
+    <subant target="validate" inheritall="false" failonerror="true">
+      <fileset dir="lucene" includes="build.xml" />
+      <fileset dir="solr" includes="build.xml" />
+    </subant>
+  </target>
+  
+  <target name="-validate-source-patterns" unless="disable.source-patterns">
+    <!-- check that there are no nocommits or @author javadoc tags: -->
+    <property name="validate.currDir" location="."/>
+    <pathconvert pathsep="${line.separator}" dirsep="/" property="validate.patternsFound" setonempty="false">
+      <fileset dir="${validate.currDir}">
+        <include name="**/*.java"/>
+        <exclude name="**/backwards/**"/>
+        <or>
+          <containsregexp expression="@author\b" casesensitive="yes"/>
+          <containsregexp expression="\bno(n|)commit\b" casesensitive="no"/>
+        </or>
+      </fileset>
+      <map from="${validate.currDir}${file.separator}" to="* "/>
+    </pathconvert>
+    <fail if="validate.patternsFound">The following files contain @author tags or nocommits:${line.separator}${validate.patternsFound}</fail>
   </target>
 
   <target name="rat-sources" description="Runs rat across all sources and tests">
@@ -185,15 +202,16 @@
     </sequential>
   </target>
 
+  <!-- define here, as common-build is not included! -->
   <property name="python32.exe" value="python3.2" />
-  <property name="JAVA6_HOME" value="/usr/local/jdk1.6.0_27"/>
-  <property name="JAVA7_HOME" value="/usr/local/jdk1.7.0_01"/>
   <property name="fakeRelease" value="lucene/build/fakeRelease"/>
   <property name="fakeReleaseTmp" value="lucene/build/fakeReleaseTmp"/>
   <property name="fakeReleaseVersion" value="5.0"/> <!-- *not* -SNAPSHOT, the real version -->
 
   <target name="nightly-smoke" description="Builds an unsigned release and smoke tests it." depends="clean">
    <sequential>
+     <fail unless="JAVA6_HOME">JAVA6_HOME property is not defined.</fail>
+     <fail unless="JAVA7_HOME">JAVA7_HOME property is not defined.</fail>
      <subant target="prepare-release-no-sign" inheritall="false" failonerror="true">
        <fileset dir="lucene" includes="build.xml" />
        <fileset dir="solr" includes="build.xml" />
@@ -229,4 +247,65 @@
      <delete dir="${fakeReleaseTmp}"/>
    </sequential>
   </target>
+  
+  <!-- Calls only generate-clover-reports on Lucene, as Solr's is just a clone with other target; the database itsself is fixed -->
+  <target name="generate-clover-reports">
+    <subant target="generate-clover-reports" inheritall="false" failonerror="true">
+      <fileset dir="." includes="build-clover.xml" />
+    </subant>
+  </target>
+
+  <!-- Jenkins tasks -->
+  <target name="jenkins-hourly" depends="clean,test,validate,-jenkins-javadocs-lint,-svn-status"/>
+  
+  <target name="jenkins-clover">
+    <antcall target="-jenkins-clover">
+      <param name="run.clover" value="true"/>
+      <!-- must be 1, as clover does not like parallel test runs: -->
+      <param name="tests.jvms" value="1"/>
+      <!-- Also override some other props to be fast, ignoring what's set on command line: -->
+      <param name="tests.multiplier" value="1"/>
+      <param name="tests.slow" value="false"/>
+      <param name="tests.nightly" value="false"/>
+      <param name="tests.weekly" value="false"/>
+      <param name="tests.multiplier" value="1"/>
+    </antcall>
+  </target>
+  <target name="-jenkins-clover" depends="clean,test,generate-clover-reports"/>
+  
+  <!-- we need this extra condition, as we want to match only on "true", not solely if property is set: -->
+  <property name="disable.javadocs-lint" value="false" />
+  <condition property="-disable.javadocs-lint">
+    <equals arg1="${disable.javadocs-lint}" arg2="true"/>
+  </condition>
+  <target name="-jenkins-javadocs-lint" unless="-disable.javadocs-lint">
+    <antcall target="javadocs-lint"/> 
+  </target>
+
+  <!-- define here, as common-build is not included! -->
+  <property name="svn.exe" value="svn" />
+  
+  <target name="-svn-status">
+    <exec executable="${svn.exe}" dir="." failonerror="true">
+      <arg value="status"/>
+      <redirector outputproperty="svn.status.output">
+        <outputfilterchain>
+          <linecontainsregexp>
+            <regexp pattern="^\?" />
+          </linecontainsregexp>
+          <tokenfilter>
+            <replaceregex pattern="^........" replace="* " />
+            <replacestring from="${file.separator}" to="/" />
+          </tokenfilter>
+        </outputfilterchain>
+      </redirector>
+    </exec>
+    <fail message="Source checkout is dirty after running tests!!! Offending files:${line.separator}${svn.status.output}">
+      <condition>
+        <not>
+          <equals arg1="${svn.status.output}" arg2=""/>
+        </not>
+      </condition>
+    </fail>
+  </target>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/eclipse/dot.classpath
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/eclipse/dot.classpath?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/eclipse/dot.classpath (original)
+++ lucene/dev/branches/lucene3312/dev-tools/eclipse/dot.classpath Mon Aug 13 14:18:26 2012
@@ -174,6 +174,6 @@
   <classpathentry kind="lib" path="solr/contrib/velocity/lib/commons-beanutils-1.7.0.jar"/>
   <classpathentry kind="lib" path="solr/contrib/velocity/lib/commons-collections-3.2.1.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lucene/test-framework/lib/randomizedtesting-runner-1.6.0.jar"/>
+	<classpathentry kind="lib" path="lucene/test-framework/lib/randomizedtesting-runner-2.0.0.rc5.jar"/>
 	<classpathentry kind="output" path="bin/other"/>
 </classpath>

Modified: lucene/dev/branches/lucene3312/dev-tools/idea/.idea/libraries/JUnit.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/idea/.idea/libraries/JUnit.xml?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/idea/.idea/libraries/JUnit.xml (original)
+++ lucene/dev/branches/lucene3312/dev-tools/idea/.idea/libraries/JUnit.xml Mon Aug 13 14:18:26 2012
@@ -2,7 +2,7 @@
   <library name="JUnit">
     <CLASSES>
       <root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/junit-4.10.jar!/" />
-      <root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/randomizedtesting-runner-1.6.0.jar!/" />
+      <root url="jar://$PROJECT_DIR$/lucene/test-framework/lib/randomizedtesting-runner-2.0.0.rc5.jar!/" />
     </CLASSES>
     <JAVADOC />
     <SOURCES />

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -385,7 +385,7 @@
       <dependency>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
         <artifactId>randomizedtesting-runner</artifactId>
-        <version>1.6.0</version>
+        <version>2.0.0.rc5</version>
       </dependency>
     </dependencies>
   </dependencyManagement>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/analysis-extras/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/analysis-extras</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -95,17 +94,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/clustering/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/clustering/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/clustering/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/clustering/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/clustering</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -100,17 +99,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler-extras/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler-extras/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler-extras/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler-extras/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/dataimporthandler-extras</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -98,17 +97,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/dataimporthandler/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/dataimporthandler</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -84,6 +83,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
     <plugins>
       <plugin>
@@ -97,15 +102,6 @@
           </execution>
         </executions>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
     </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/extraction/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/extraction/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/extraction/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/extraction/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -38,7 +38,6 @@
     <module-directory>solr/contrib/extraction</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -96,17 +95,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/langid/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/langid/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/langid/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/langid/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -39,7 +39,6 @@
     <module-directory>solr/contrib/langid</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -101,17 +100,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/uima/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/uima/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/uima/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/uima/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/uima</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -115,17 +114,12 @@
       <testResource>
         <directory>${module-path}/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/velocity/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/velocity/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/velocity/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/contrib/velocity/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/contrib/velocity</module-directory>
     <top-level>../../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -136,17 +135,12 @@
       <testResource>
         <directory>${top-level}/solr/core/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
   </build>
 </project>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/core/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/core/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/core/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/core/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -35,7 +35,6 @@
     <module-directory>solr/core</module-directory>
     <top-level>../../..</top-level>
     <module-path>${top-level}/${module-directory}</module-path>
-    <surefire-top-level>${top-level}/../..</surefire-top-level>
   </properties>
   <scm>
     <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
@@ -237,18 +236,15 @@
       <testResource>
         <directory>${top-level}/solr/solrj/src/test-files</directory>
       </testResource>
+      <testResource>
+        <directory>${top-level}/dev-tools/maven/solr</directory>
+        <includes>
+          <include>maven.testlogging.properties</include>
+        </includes>
+      </testResource>
     </testResources>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <systemPropertyVariables>
-            <java.util.logging.config.file>${surefire-top-level}/solr/testlogging.properties</java.util.logging.config.file>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>build-helper-maven-plugin</artifactId>
         <executions>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -99,6 +99,15 @@
             <doctitle>${project.name} ${project.version} API (${now.version})</doctitle>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <configuration>
+            <systemPropertyVariables>
+              <java.util.logging.config.file>../test-classes/maven.testlogging.properties</java.util.logging.config.file>
+            </systemPropertyVariables>
+          </configuration>
+        </plugin>
       </plugins>
     </pluginManagement>
   </build>

Modified: lucene/dev/branches/lucene3312/dev-tools/maven/solr/test-framework/pom.xml.template
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/maven/solr/test-framework/pom.xml.template?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/maven/solr/test-framework/pom.xml.template (original)
+++ lucene/dev/branches/lucene3312/dev-tools/maven/solr/test-framework/pom.xml.template Mon Aug 13 14:18:26 2012
@@ -57,6 +57,8 @@
     <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>servlet-api</artifactId>
+      <!-- SOLR-3263: Provided scope is required to avoid jar signing conflicts -->
+      <scope>provided</scope>
     </dependency>
     <dependency>
       <groupId>junit</groupId>

Modified: lucene/dev/branches/lucene3312/dev-tools/scripts/smokeTestRelease.py
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/dev-tools/scripts/smokeTestRelease.py?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/dev-tools/scripts/smokeTestRelease.py (original)
+++ lucene/dev/branches/lucene3312/dev-tools/scripts/smokeTestRelease.py Mon Aug 13 14:18:26 2012
@@ -58,7 +58,7 @@ def javaExe(version):
 
 def verifyJavaVersion(version):
   s = os.popen('%s; java -version 2>&1' % javaExe(version)).read()
-  if s.find('java version "%s.' % version) == -1:
+  if s.find(' version "%s.' % version) == -1:
     raise RuntimeError('got wrong version for java %s:\n%s' % (version, s))
 
 # http://s.apache.org/lusolr32rc2

Modified: lucene/dev/branches/lucene3312/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/CHANGES.txt?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene3312/lucene/CHANGES.txt Mon Aug 13 14:18:26 2012
@@ -8,6 +8,29 @@ http://s.apache.org/luceneversions
 
 ======================= Lucene 4.0.0 =======================
 
+New Features
+
+* LUCENE-1888: Added the option to store payloads in the term
+  vectors (IndexableFieldType.storeTermVectorPayloads()). Note 
+  that you must store term vector positions to store payloads.
+  (Robert Muir)
+
+API Changes
+
+* LUCENE-4299: Added Terms.hasPositions() and Terms.hasOffsets().
+  Previously you had no real way to know that a term vector field
+  had positions or offsets, since this can be configured on a 
+  per-field-per-document basis. (Robert Muir)
+
+* Removed DocsAndPositionsEnum.hasPayload() and simplified the
+  contract of getPayload(). It returns null if there is no payload,
+  otherwise returns the current payload. You can now call it multiple
+  times per position if you want. (Robert Muir)
+
+* Removed FieldsEnum. Fields API instead implements Iterable<String>
+  and exposes Iterator, so you can iterate over field names with
+  for (String field : fields) instead.  (Robert Muir)
+
 Bug Fixes
 
 * LUCENE-4297: BooleanScorer2 would multiply the coord() factor
@@ -16,6 +39,24 @@ Bug Fixes
   than 1 when overlap == maxOverlap (always the case for conjunctions),
   then the score would be incorrect.  (Pascal Chollet, Robert Muir)
 
+* LUCENE-4298: MultiFields.getTermDocsEnum(IndexReader, Bits, String, BytesRef)
+  did not work at all, it would infinitely recurse.
+  (Alberto Paro via Robert Muir)
+
+* LUCENE-4300: BooleanQuery's rewrite was not always safe: if you
+  had a custom Similarity where coord(1,1) != 1F, then the rewritten
+  query would be scored differently.  (Robert Muir)
+
+* Don't allow negatives in the positions file. If you have an index
+  from 2.4.0 or earlier with such negative positions, and you already 
+  upgraded to 3.x, then to Lucene 4.0-ALPHA or -BETA, you should run 
+  CheckIndex. If it fails, then you need to upgrade again to 4.0  (Robert Muir)
+
+Build
+
+* LUCENE-3985: Upgrade to randomizedtesting 2.0.0. Added support for 
+  thread leak detection. Added support for suite timeouts. (Dawid Weiss)
+
 ======================= Lucene 4.0.0-BETA =======================
 
 New features

Modified: lucene/dev/branches/lucene3312/lucene/MIGRATE.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/MIGRATE.txt?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/MIGRATE.txt (original)
+++ lucene/dev/branches/lucene3312/lucene/MIGRATE.txt Mon Aug 13 14:18:26 2012
@@ -9,7 +9,7 @@ enumeration APIs.  Here are the major ch
     by the BytesRef class (which provides an offset + length "slice"
     into an existing byte[]).
 
-  * Fields are separately enumerated (FieldsEnum) from the terms
+  * Fields are separately enumerated (Fields.iterator()) from the terms
     within each field (TermEnum).  So instead of this:
 
         TermEnum termsEnum = ...;
@@ -20,10 +20,8 @@ enumeration APIs.  Here are the major ch
 
     Do this:
 
-        FieldsEnum fieldsEnum = ...;
-        String field;
-        while((field = fieldsEnum.next()) != null) {
-            TermsEnum termsEnum = fieldsEnum.terms();
+        for(String field : fields) {
+            TermsEnum termsEnum = fields.terms(field);
             BytesRef text;
             while((text = termsEnum.next()) != null) {
               System.out.println("field=" + field + "; text=" + text.utf8ToString());

Modified: lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestAllAnalyzersHaveFactories.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestAllAnalyzersHaveFactories.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestAllAnalyzersHaveFactories.java (original)
+++ lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestAllAnalyzersHaveFactories.java Mon Aug 13 14:18:26 2012
@@ -100,8 +100,7 @@ public class TestAllAnalyzersHaveFactori
   private static final ResourceLoader loader = new StringMockResourceLoader("");
   
   public void test() throws Exception {
-    List<Class<?>> analysisClasses = new ArrayList<Class<?>>();
-    TestRandomChains.getClassesForPackage("org.apache.lucene.analysis", analysisClasses);
+    List<Class<?>> analysisClasses = TestRandomChains.getClassesForPackage("org.apache.lucene.analysis");
     
     for (final Class<?> c : analysisClasses) {
       final int modifiers = c.getModifiers();

Modified: lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java (original)
+++ lucene/dev/branches/lucene3312/lucene/analysis/common/src/test/org/apache/lucene/analysis/core/TestRandomChains.java Mon Aug 13 14:18:26 2012
@@ -25,6 +25,7 @@ import java.io.StringReader;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Modifier;
+import java.net.URI;
 import java.net.URL;
 import java.nio.CharBuffer;
 import java.util.ArrayList;
@@ -165,8 +166,7 @@ public class TestRandomChains extends Ba
   
   @BeforeClass
   public static void beforeClass() throws Exception {
-    List<Class<?>> analysisClasses = new ArrayList<Class<?>>();
-    getClassesForPackage("org.apache.lucene.analysis", analysisClasses);
+    List<Class<?>> analysisClasses = getClassesForPackage("org.apache.lucene.analysis");
     tokenizers = new ArrayList<Constructor<? extends Tokenizer>>();
     tokenfilters = new ArrayList<Constructor<? extends TokenFilter>>();
     charfilters = new ArrayList<Constructor<? extends CharFilter>>();
@@ -235,19 +235,30 @@ public class TestRandomChains extends Ba
   private static <T> Constructor<T> castConstructor(Class<T> instanceClazz, Constructor<?> ctor) {
     return (Constructor<T>) ctor;
   }
-  static void getClassesForPackage(String pckgname, List<Class<?>> classes) throws Exception {
+  
+  public static List<Class<?>> getClassesForPackage(String pckgname) throws Exception {
+    final List<Class<?>> classes = new ArrayList<Class<?>>();
+    collectClassesForPackage(pckgname, classes);
+    assertFalse("No classes found in package '"+pckgname+"'; maybe your test classes are packaged as JAR file?", classes.isEmpty());
+    return classes;
+  }
+  
+  private static void collectClassesForPackage(String pckgname, List<Class<?>> classes) throws Exception {
     final ClassLoader cld = TestRandomChains.class.getClassLoader();
     final String path = pckgname.replace('.', '/');
     final Enumeration<URL> resources = cld.getResources(path);
     while (resources.hasMoreElements()) {
-      final File directory = new File(resources.nextElement().toURI());
+      final URI uri = resources.nextElement().toURI();
+      if (!"file".equalsIgnoreCase(uri.getScheme()))
+        continue;
+      final File directory = new File(uri);
       if (directory.exists()) {
         String[] files = directory.list();
         for (String file : files) {
           if (new File(directory, file).isDirectory()) {
             // recurse
             String subPackage = pckgname + "." + file;
-            getClassesForPackage(subPackage, classes);
+            collectClassesForPackage(subPackage, classes);
           }
           if (file.endsWith(".class")) {
             String clazzName = file.substring(0, file.length() - 6);

Modified: lucene/dev/branches/lucene3312/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java (original)
+++ lucene/dev/branches/lucene3312/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java Mon Aug 13 14:18:26 2012
@@ -43,7 +43,6 @@ import org.apache.lucene.facet.taxonomy.
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -206,6 +205,7 @@ public class TestPerfTasksLogic extends 
     // 1. alg definition (required in every "logic" test)
     String algLines[] = {
         "doc.stored=true",//doc storage is required in order to have text to highlight
+        "doc.term.vector=true",
         "doc.term.vector.offsets=true",
         "content.source=org.apache.lucene.benchmark.byTask.feeds.LineDocSource",
         "docs.file=" + getReuters20LinesFile(),
@@ -492,13 +492,13 @@ public class TestPerfTasksLogic extends 
 
     int totalTokenCount2 = 0;
 
-    FieldsEnum fields = MultiFields.getFields(reader).iterator();
-    String fieldName = null;
-    while((fieldName = fields.next()) != null) {
+    Fields fields = MultiFields.getFields(reader);
+
+    for (String fieldName : fields) {
       if (fieldName.equals(DocMaker.ID_FIELD) || fieldName.equals(DocMaker.DATE_MSEC_FIELD) || fieldName.equals(DocMaker.TIME_SEC_FIELD)) {
         continue;
       }
-      Terms terms = fields.terms();
+      Terms terms = fields.terms(fieldName);
       if (terms == null) {
         continue;
       }

Modified: lucene/dev/branches/lucene3312/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/build.xml?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/build.xml (original)
+++ lucene/dev/branches/lucene3312/lucene/build.xml Mon Aug 13 14:18:26 2012
@@ -139,29 +139,6 @@
 
   <target name="compile-core" depends="compile-lucene-core"/>
 
-  <!--
-   Run after Junit tests.
-   -->
-  <target name="generate-clover-reports" depends="clover">
-    <fail unless="run.clover">Clover not enabled!</fail>
-    <mkdir dir="${clover.report.dir}"/>
-    <fileset dir="build" id="clover.test.result.files">
-      <include name="**/test/TEST-*.xml"/>
-      <!-- do not include BW tests -->
-      <exclude name="backwards/**"/>
-    </fileset>
-    <clover-report>
-      <current outfile="${clover.report.dir}" title="${final.name}" numThreads="0">
-        <format type="html" filter="assert"/>
-        <testresults refid="clover.test.result.files"/>
-      </current>
-      <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
-        <format type="xml" filter="assert"/>
-        <testresults refid="clover.test.result.files"/>
-      </current>
-    </clover-report>
-  </target>
-
   <!-- Validation (license/notice/api checks). -->
   <target name="validate" depends="check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />
 
@@ -176,6 +153,7 @@
       <apiFileSet dir="${custom-tasks.dir}/forbiddenApis">
         <include name="jdk.txt" />
         <include name="jdk-deprecated.txt" />
+        <include name="executors.txt" />
       </apiFileSet>
       <fileset dir="${basedir}/build" includes="**/*.class" />
     </forbidden-apis>

Modified: lucene/dev/branches/lucene3312/lucene/common-build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/common-build.xml?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/common-build.xml (original)
+++ lucene/dev/branches/lucene3312/lucene/common-build.xml Mon Aug 13 14:18:26 2012
@@ -88,7 +88,7 @@
   <property name="tests.timezone" value="random" />
   <property name="tests.directory" value="random" />
   <property name="tests.linedocsfile" value="europarl.lines.txt.gz" />
-  <property name="tests.loggingfile" value="/dev/null"/>
+  <property name="tests.loggingfile" value="${common.dir}/tools/junit4/logging.properties"/>
   <property name="tests.nightly" value="false" />
   <property name="tests.weekly" value="false" />
   <property name="tests.slow" value="true" />
@@ -700,15 +700,22 @@
   <condition property="tests.method" value="${testmethod}*">
     <isset property="testmethod" />
   </condition>
+
   <condition property="tests.showSuccess" value="true">
     <or>
       <isset property="tests.class" />
       <isset property="tests.method" />
     </or>
   </condition>
-  <!-- default -->
   <property name="tests.showSuccess" value="false"/>
-  
+
+  <condition property="tests.showOutput" value="always">
+    <or>
+      <isset property="tests.class" />
+      <isset property="tests.method" />
+    </or>
+  </condition>
+  <property name="tests.showOutput" value="onerror"/>
 
   <!-- Test macro using junit4. -->
   <macrodef name="test-macro" description="Executes junit tests.">
@@ -854,6 +861,7 @@
             <syspropertyset>
                 <propertyref prefix="tests.maxfailures" />
                 <propertyref prefix="tests.failfast" />
+                <propertyref prefix="tests.badapples" />
             </syspropertyset>
 
             <!-- Pass randomized settings to the forked JVM. -->
@@ -875,8 +883,7 @@
                 <junit4:report-text
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="${tests.showOutput}" 
 
                     showStatusOk="${tests.showSuccess}"
                     showStatusError="${tests.showError}"
@@ -896,8 +903,7 @@
                     file="@{junit.output.dir}/tests-report.txt"
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="always"
 
                     showStatusOk="true"
                     showStatusError="true"
@@ -913,8 +919,7 @@
                     file="@{junit.output.dir}/tests-failures.txt"
                     showThrowable="true" 
                     showStackTraces="true" 
-                    showOutputStream="true" 
-                    showErrorStream="true"
+                    showOutput="onerror" 
 
                     showStatusOk="false"
                     showStatusError="true"
@@ -929,8 +934,13 @@
                      the slowest tests or for reuse in balancing). -->
                 <junit4:report-execution-times file="@{junit.output.dir}/tests-timehints.txt" historyLength="5" />
 
-                <junit4:report-ant-xml dir="@{junit.output.dir}" />
-                <junit4:report-json file="@{junit.output.dir}/tests-report-${ant.project.name}/index.html" />
+                <!-- ANT-compatible XMLs for jenkins records etc. -->
+                <junit4:report-ant-xml dir="@{junit.output.dir}" outputStreams="no" />
+
+                <!--
+                Enable if you wish to have a nice HTML5 report.
+                <junit4:report-json file="@{junit.output.dir}/tests-report-${ant.project.name}/index.html" outputStreams="no" />
+                -->
             </listeners>
 
             <!-- Input test classes. -->

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTermsReader.java Mon Aug 13 14:18:26 2012
@@ -27,7 +27,6 @@ import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.Terms;
@@ -40,6 +39,7 @@ import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.DoubleBarrelLRUCache;
+import org.apache.lucene.util.UnmodifiableIterator;
 
 /** Handles a terms dict, but decouples all details of
  *  doc/freqs/positions reading to an instance of {@link
@@ -184,8 +184,8 @@ public class BlockTermsReader extends Fi
   }
 
   @Override
-  public FieldsEnum iterator() {
-    return new TermFieldsEnum();
+  public Iterator<String> iterator() {
+    return new UnmodifiableIterator<String>(fields.keySet().iterator());
   }
 
   @Override
@@ -199,32 +199,6 @@ public class BlockTermsReader extends Fi
     return fields.size();
   }
 
-  // Iterates through all fields
-  private class TermFieldsEnum extends FieldsEnum {
-    final Iterator<FieldReader> it;
-    FieldReader current;
-
-    TermFieldsEnum() {
-      it = fields.values().iterator();
-    }
-
-    @Override
-    public String next() {
-      if (it.hasNext()) {
-        current = it.next();
-        return current.fieldInfo.name;
-      } else {
-        current = null;
-        return null;
-      }
-    }
-    
-    @Override
-    public Terms terms() throws IOException {
-      return current;
-    }
-  }
-
   private class FieldReader extends Terms {
     final long numTerms;
     final FieldInfo fieldInfo;
@@ -254,6 +228,21 @@ public class BlockTermsReader extends Fi
     }
 
     @Override
+    public boolean hasOffsets() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
+    }
+
+    @Override
+    public boolean hasPositions() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+    }
+    
+    @Override
+    public boolean hasPayloads() {
+      return fieldInfo.hasPayloads();
+    }
+
+    @Override
     public long size() {
       return numTerms;
     }

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/BlockTreeTermsReader.java Mon Aug 13 14:18:26 2012
@@ -31,7 +31,6 @@ import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.FieldInfos;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.TermState;
 import org.apache.lucene.index.Terms;
@@ -46,6 +45,7 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.UnmodifiableIterator;
 import org.apache.lucene.util.automaton.CompiledAutomaton;
 import org.apache.lucene.util.automaton.RunAutomaton;
 import org.apache.lucene.util.automaton.Transition;
@@ -199,8 +199,8 @@ public class BlockTreeTermsReader extend
   }
 
   @Override
-  public FieldsEnum iterator() {
-    return new TermFieldsEnum();
+  public Iterator<String> iterator() {
+    return new UnmodifiableIterator<String>(fields.keySet().iterator());
   }
 
   @Override
@@ -214,32 +214,6 @@ public class BlockTreeTermsReader extend
     return fields.size();
   }
 
-  // Iterates through all fields
-  private class TermFieldsEnum extends FieldsEnum {
-    final Iterator<FieldReader> it;
-    FieldReader current;
-
-    TermFieldsEnum() {
-      it = fields.values().iterator();
-    }
-
-    @Override
-    public String next() {
-      if (it.hasNext()) {
-        current = it.next();
-        return current.fieldInfo.name;
-      } else {
-        current = null;
-        return null;
-      }
-    }
-    
-    @Override
-    public Terms terms() throws IOException {
-      return current;
-    }
-  }
-
   // for debugging
   String brToString(BytesRef b) {
     if (b == null) {
@@ -457,6 +431,21 @@ public class BlockTreeTermsReader extend
     }
 
     @Override
+    public boolean hasOffsets() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
+    }
+
+    @Override
+    public boolean hasPositions() {
+      return fieldInfo.getIndexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
+    }
+    
+    @Override
+    public boolean hasPayloads() {
+      return fieldInfo.hasPayloads();
+    }
+
+    @Override
     public TermsEnum iterator(TermsEnum reuse) throws IOException {
       return new SegmentTermsEnum();
     }

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/FieldsConsumer.java Mon Aug 13 14:18:26 2012
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import org.apache.lucene.index.FieldInfo;
 import org.apache.lucene.index.Fields;
-import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.MergeState;
 import org.apache.lucene.index.SegmentWriteState; // javadocs
 import org.apache.lucene.index.Terms;
@@ -53,13 +52,10 @@ public abstract class FieldsConsumer imp
   public abstract void close() throws IOException;
 
   public void merge(MergeState mergeState, Fields fields) throws IOException {
-    FieldsEnum fieldsEnum = fields.iterator();
-    assert fieldsEnum != null;
-    String field;
-    while((field = fieldsEnum.next()) != null) {
+    for (String field : fields) {
       mergeState.fieldInfo = mergeState.fieldInfos.fieldInfo(field);
       assert mergeState.fieldInfo != null : "FieldInfo for field is null: "+ field;
-      Terms terms = fieldsEnum.terms();
+      Terms terms = fields.terms(field);
       if (terms != null) {
         final TermsConsumer termsConsumer = addField(mergeState.fieldInfo);
         termsConsumer.merge(mergeState, terms.iterator(null));

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/MappingMultiDocsAndPositionsEnum.java Mon Aug 13 14:18:26 2012
@@ -124,15 +124,17 @@ public final class MappingMultiDocsAndPo
   @Override
   public BytesRef getPayload() throws IOException {
     BytesRef payload = current.getPayload();
-    if (mergeState.currentPayloadProcessor[upto] != null) {
+    if (mergeState.currentPayloadProcessor[upto] != null && payload != null) {
+      // to not violate the D&P api, we must give the processor a private copy
+      // TODO: reuse a BytesRef if there is a PPP
+      payload = BytesRef.deepCopyOf(payload);
       mergeState.currentPayloadProcessor[upto].processPayload(payload);
+      if (payload.length == 0) {
+        // don't let PayloadProcessors corrumpt the index
+        return null;
+      }
     }
     return payload;
   }
-
-  @Override
-  public boolean hasPayload() {
-    return current.hasPayload();
-  }
 }
 

Modified: lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/PostingsConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/PostingsConsumer.java?rev=1372438&r1=1372437&r2=1372438&view=diff
==============================================================================
--- lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/PostingsConsumer.java (original)
+++ lucene/dev/branches/lucene3312/lucene/core/src/java/org/apache/lucene/codecs/PostingsConsumer.java Mon Aug 13 14:18:26 2012
@@ -112,12 +112,7 @@ public abstract class PostingsConsumer {
         totTF += freq;
         for(int i=0;i<freq;i++) {
           final int position = postingsEnum.nextPosition();
-          final BytesRef payload;
-          if (postingsEnum.hasPayload()) {
-            payload = postingsEnum.getPayload();
-          } else {
-            payload = null;
-          }
+          final BytesRef payload = postingsEnum.getPayload();
           this.addPosition(position, payload, -1, -1);
         }
         this.finishDoc();
@@ -137,12 +132,7 @@ public abstract class PostingsConsumer {
         totTF += freq;
         for(int i=0;i<freq;i++) {
           final int position = postingsEnum.nextPosition();
-          final BytesRef payload;
-          if (postingsEnum.hasPayload()) {
-            payload = postingsEnum.getPayload();
-          } else {
-            payload = null;
-          }
+          final BytesRef payload = postingsEnum.getPayload();
           this.addPosition(position, payload, postingsEnum.startOffset(), postingsEnum.endOffset());
         }
         this.finishDoc();