You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2020/02/09 02:27:45 UTC

[lucene-solr] branch jira/solr-13996 updated (dc76002a -> f93ac6e)

This is an automated email from the ASF dual-hosted git repository.

shalin pushed a change to branch jira/solr-13996
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.


    from dc76002a SOLR-13996: Refactored HttpShardHandler.shortCircuitIfPossible method into a simpler canShortCircuit method
     add e504798  LUCENE-9185: add "tests.profile" to gradle build to aid fixing slow tests
     add 4350efa  LUCENE-9187: remove too-expensive assert from LZ4 HighCompressionHashTable
     add 3bcc97c  LUCENE-9186: remove linefiledocs usage from BaseTokenStreamTestCase
     add 4773574  LUCENE-9189: TestIndexWriterDelete.testDeletesOnDiskFull can run for minutes
     add 6eb8834  LUCENE-4702: Reduce terms dictionary compression overhead. (#1216)
     add 92b684c  LUCENE-9161: DirectMonotonicWriter checks for overflows. (#1197)
     add 7941d10  SOLR-13897: Fix precommit.
     add e25dac0  LUCENE-9134: this adds initial javacc support (without follow-up tweaks required to make the sources identical as those generated by ant).
     add c982299  LUCENE-9152: Improve line intersection detection for polygons (#1187)
     add 29469b4  LUCENE-9192: speed up more slow tests
     add a948291  LUCENE-9141: Simplify LatLonShapeXQuery API by adding a new abstract class called LatLonGeometry. (#1170)
     add 13e2094  LUCENE-4702: Improve performance for fuzzy queries.
     add 043dd20  LUCENE-9080: this jflex file got corrupted somehow during previous commit. I regenerated it with ant, along with the final java file. I also added a crlf normalization, encoding and forced-regeneration to ant because it didn't work before.
     add 3a8ed5e  LUCENE-9134: add python-based regeneration of HTMLCharacterEntities.jflex inside jflexHTMLStripCharFilter.
     add 4b5105e  LUCENE-9193: heap allocations for tests.profile
     add 517438e  New /stream test cases showing authn+authz edge cases in cloud mode
     add ed7f507  LUCENE-9193: fix documentation typo for gradle tests
     add 9ceaff9  LUCENE-9195: more slow tests fixes
     add 719b38c  SOLR-13892: Add 'top-level' docValues Join implementation (#1171)
     add 0c1b19a  LUCENE-8530: fix some 'rawtypes' javac warnings
     add db78f6c  SOLR-14139: Support backtick phrase queries in Streaming Expressions
     add 7382375  support ECJ linting on newer JDK versions
     add 5253c0c  LUCENE-9134 Port ant-regenerate tasks to Gradle build (#1226)
     add a2c53da  fix typo in schema-api documentation
     add b457c2e  LUCENE-9123: Add new JapaneseTokenizer constructors with discardCompoundToken option to control whether the tokenizer emits original tokens when the mode is not NORMAL.
     add 16b8d50  SOLR-14221: Upgrade restlet to version 2.4.0 (#1211)
     add d8bc9bc  SOLR-12325: uniqueBlock(\{!v=foo:bar})
     add d3ac132  LUCENE-8656: Deprecations in FuzzyQuery (#1229)
     add 641680f  LUCENE-9197: fix wrong implementation on Point2D#withinTriangle (#1228)
     add b0bb299  LUCENE-9134: Port ant-regenerate tasks to Gradle build (#1230)
     add 4eff9c9  SOLR-10567: add support for DateRangeField in JSON facet range
     add c91dd9d  SOLR-14090: fix delete-copy-field when source is dynamic field
     add bb90569  SOLR-14219: Revert changes in OverseerSolrRespose and move serialization (#1227)
     add 2d8428e  SOLR-14238: Fix HdfsDirectory to no longer overwrite existing files. (#1237)
     add 47386f8  LUCENE-9200: consistently use double (not float) math for TieredMergePolicy's decisions, to fix a corner-case bug uncovered by randomized tests
     add fe349dd  SOLR-14242: HdfsDirectory#createTempOutput. (#1240)
     add 136dcbd  LUCENE-9147: Move the stored fields index off-heap. (#1179)
     add c5d0391  SOLR-14241: New delete() Stream Decorator
     add 80ed8c2  SOLR-13887: Use the default idleTimeout instead of 0 for HTTP2 (#991)
     add 93b83f6  LUCENE-9206: Improve IndexMergeTool defaults and options
     add bc5f837  SOLR-14147 change the Security manager to default to true. (#1141)
     add 196ec5f  LUCENE-9206: add forbidden api exclusion to new class
     add 63be99b  SOLR-14118: default embedded zookeeper port to localhost
     add 1b88224  LUCENE-9147: Avoid reusing file names with FileSwitchDirectory or NRTCachingDirectory and IOContext randomization.
     add fdf5ade  LUCENE-9147: Fix codec excludes.
     add 7c1ba1a  LUCENE-9099: Correctly handle repeats in ORDERED and UNORDERED intervals (#1097)
     add 7f4560c  LUCENE-9199: allow building javadocs on java 13+
     add 85dba73  LUCENE-9147: Make sure temporary files get deleted on all code paths.
     add f3cd1db  LUCENE-9077: Force locale en_US on Javadoc task (workaroud for JDK-8222793)
     add abd282d  LUCENE-9142 Refactor IntSet operations for determinize (#1184)
     add 0d33904  LUCENE-9209: fix javadocs to be html5, enable doclint html checks, remove jtidy
     add 860115e  LUCENE-9209: revert changes to test html file, not intended
     add a77bb1e  LUCENE-9201: add overview.html from correct location to the javadocs in gradle build
     add c0d1f30  SOLR-12930: Exclude dev-docs from binary archive.
     add 9a19093  SOLR-14245: Validate Replica / ReplicaInfo on creation.
     add 73dbf6d  UCENE-9194: Simplify XYShapeXQuery API by adding a new abstract class called XYGeometry
     add 206a70e  LUCENE-9149: Increase data dimension limit in BKD
     add 69f26d0  LUCENE-9213: fix documentation-lint (and finally precommit) to work on java 12 and 13
     add 7c20f6b  LUCENE-9146: Create gradle precommit action (#1245)
     add f5c132b  SOLR-14248: Improve ClusterStateMockUtil and make its methods public
     new 8b70083  Merge branch 'master' into jira/solr-13996
     new f93ac6e  SOLR-13996: Fixes a bug in the IsLeader predicate that used the builder's collection instead of the slice's collection. Added tests for CloudReplicaSource. Added support for making the first nrt or tlog replica as the leader in ClusterStateMockUtil.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/gradle-precommit.yml             |    23 +
 build.gradle                                       |     5 +-
 .../org/apache/lucene/gradle/ProfileResults.java   |   215 +
 dev-tools/scripts/checkJavaDocs.py                 |     7 +-
 gradle/defaults-java.gradle                        |     6 +-
 gradle/defaults-javadoc.gradle                     |     5 +-
 gradle/generation/javacc.gradle                    |   385 +
 gradle/generation/jflex.gradle                     |    31 +
 gradle/testing/profiling.gradle                    |    47 +
 gradle/testing/profiling.jfc                       |    41 +
 help/tests.txt                                     |    29 +
 lucene/CHANGES.txt                                 |    33 +
 lucene/MIGRATE.txt                                 |    16 +
 lucene/analysis/common/build.xml                   |     3 +-
 .../lucene/analysis/br/BrazilianStemmer.java       |     4 +-
 .../charfilter/HTMLCharacterEntities.jflex         |     2 +-
 .../analysis/charfilter/HTMLStripCharFilter.java   | 58714 +++++++++----------
 .../lucene/analysis/compound/package-info.java     |     9 +-
 .../apache/lucene/analysis/de/GermanStemmer.java   |     6 +-
 .../ConcatenateGraphFilterFactory.java             |     8 +-
 .../analysis/ngram/EdgeNGramTokenFilter.java       |     2 +-
 .../lucene/analysis/ngram/EdgeNGramTokenizer.java  |     2 +-
 .../lucene/analysis/ngram/NGramTokenizer.java      |     5 +-
 .../lucene/analysis/standard/ClassicFilter.java    |     2 +-
 .../analysis/standard/ClassicTokenizerImpl.java    |     4 +-
 .../standard/UAX29URLEmailTokenizerImpl.java       |     4 +-
 .../analysis/wikipedia/WikipediaTokenizerImpl.java |     4 +-
 .../lucene/analysis/core/TestDuelingAnalyzers.java |    26 +-
 .../icu/segmentation/ICUTokenizerFactory.java      |     2 +-
 lucene/analysis/icu/src/java/overview.html         |    28 +-
 .../lucene/analysis/ja/JapaneseAnalyzer.java       |     2 +-
 .../lucene/analysis/ja/JapaneseTokenizer.java      |    42 +-
 .../analysis/ja/JapaneseTokenizerFactory.java      |     7 +-
 .../lucene/analysis/ja/TestJapaneseAnalyzer.java   |    31 +-
 .../analysis/ja/TestJapaneseNumberFilter.java      |     2 +-
 .../lucene/analysis/ja/TestJapaneseTokenizer.java  |    51 +-
 .../analysis/ja/TestJapaneseTokenizerFactory.java  |    17 +-
 .../apache/lucene/analysis/ja/TestSearchMode.java  |    61 +-
 .../analysis/opennlp/OpenNLPLemmatizerFilter.java  |     2 +-
 .../stempel/src/java/org/egothor/stemmer/Diff.java |     4 +-
 .../src/java/org/egothor/stemmer/Gener.java        |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Lift.java |     2 +-
 .../src/java/org/egothor/stemmer/MultiTrie.java    |     4 +-
 .../src/java/org/egothor/stemmer/MultiTrie2.java   |     4 +-
 .../src/java/org/egothor/stemmer/Optimizer.java    |     4 +-
 .../src/java/org/egothor/stemmer/Optimizer2.java   |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Row.java  |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Trie.java |     4 +-
 lucene/analysis/stempel/src/java/overview.html     |    40 +-
 .../codecs/lucene50/Lucene50PostingsFormat.java    |    20 +-
 .../lucene/benchmark/byTask/package-info.java      |    17 +-
 .../byTask/tasks/AnalyzerFactoryTask.java          |     6 +-
 lucene/build.xml                                   |     9 +-
 .../lucene/codecs/memory/FSTTermsWriter.java       |     4 +-
 .../codecs/simpletext/SimpleTextBKDReader.java     |    18 +-
 .../codecs/simpletext/SimpleTextBKDWriter.java     |    20 +-
 .../simpletext/SimpleTextFieldInfosFormat.java     |     6 +-
 .../codecs/simpletext/SimpleTextPointsReader.java  |     2 +-
 .../codecs/simpletext/SimpleTextPointsWriter.java  |     2 +-
 lucene/common-build.xml                            |    56 +-
 lucene/core/src/data/jflex/skeleton.default        |     4 +-
 .../jflex/skeleton.disable.buffer.expansion.txt    |     4 +-
 .../org/apache/lucene/analysis/package-info.java   |    16 +-
 .../analysis/standard/StandardTokenizerImpl.java   |     4 +-
 .../org/apache/lucene/codecs/PointsWriter.java     |     8 +-
 .../codecs/blocktree/BlockTreeTermsWriter.java     |    92 +-
 .../codecs/blocktree/IntersectTermsEnumFrame.java  |    56 +-
 .../codecs/blocktree/SegmentTermsEnumFrame.java    |    65 +-
 .../org/apache/lucene/codecs/blocktree/Stats.java  |    11 +-
 .../compressing/CompressingStoredFieldsFormat.java |    26 +-
 .../CompressingStoredFieldsIndexWriter.java        |   213 -
 .../compressing/CompressingStoredFieldsReader.java |    90 +-
 .../compressing/CompressingStoredFieldsWriter.java |    41 +-
 .../compressing/CompressingTermVectorsReader.java  |    79 +-
 .../compressing/CompressingTermVectorsWriter.java  |    31 +-
 .../lucene/codecs/compressing/FieldsIndex.java}    |    23 +-
 .../codecs/compressing/FieldsIndexReader.java      |   139 +
 .../codecs/compressing/FieldsIndexWriter.java      |   200 +
 ...dexReader.java => LegacyFieldsIndexReader.java} |    15 +-
 .../codecs/lucene50/Lucene50CompoundFormat.java    |     4 +-
 .../codecs/lucene50/Lucene50FieldInfosFormat.java  |     2 +-
 .../lucene50/Lucene50StoredFieldsFormat.java       |    80 +-
 .../codecs/lucene50/Lucene50TermVectorsFormat.java |    14 +-
 .../codecs/lucene60/Lucene60FieldInfosFormat.java  |     6 +-
 .../codecs/lucene60/Lucene60PointsReader.java      |     2 +-
 .../codecs/lucene60/Lucene60PointsWriter.java      |    12 +-
 .../codecs/lucene70/Lucene70SegmentInfoFormat.java |     2 +-
 .../codecs/lucene80/Lucene80DocValuesFormat.java   |     8 +-
 .../codecs/lucene80/Lucene80NormsFormat.java       |     8 +-
 .../codecs/lucene84/Lucene84PostingsFormat.java    |    20 +-
 .../lucene/codecs/lucene84/package-info.java       |    27 +-
 .../codecs/perfield/PerFieldDocValuesFormat.java   |     4 +-
 .../lucene/codecs/perfield/PerFieldMergeState.java |     2 +-
 .../codecs/perfield/PerFieldPostingsFormat.java    |     4 +-
 .../org/apache/lucene/document/BinaryPoint.java    |     4 +-
 .../org/apache/lucene/document/DoublePoint.java    |    10 +-
 .../org/apache/lucene/document/DoubleRange.java    |    10 +-
 .../java/org/apache/lucene/document/FieldType.java |    49 +-
 .../org/apache/lucene/document/FloatPoint.java     |    10 +-
 .../org/apache/lucene/document/FloatRange.java     |    10 +-
 .../java/org/apache/lucene/document/IntPoint.java  |    10 +-
 .../java/org/apache/lucene/document/IntRange.java  |    10 +-
 .../LatLonDocValuesPointInPolygonQuery.java        |     4 +-
 .../org/apache/lucene/document/LatLonPoint.java    |     6 +-
 .../lucene/document/LatLonPointInPolygonQuery.java |     4 +-
 .../org/apache/lucene/document/LatLonShape.java    |    44 +-
 .../lucene/document/LatLonShapeLineQuery.java      |   143 -
 .../lucene/document/LatLonShapePointQuery.java     |   123 -
 ...hapePolygonQuery.java => LatLonShapeQuery.java} |    69 +-
 .../java/org/apache/lucene/document/LongPoint.java |    10 +-
 .../java/org/apache/lucene/document/LongRange.java |    10 +-
 .../apache/lucene/document/RangeFieldQuery.java    |     4 +-
 .../org/apache/lucene/document/ShapeQuery.java     |     2 +-
 .../java/org/apache/lucene/document/XYShape.java   |    47 +-
 .../lucene/document/XYShapeBoundingBoxQuery.java   |   142 -
 .../apache/lucene/document/XYShapeLineQuery.java   |   146 -
 .../apache/lucene/document/XYShapePointQuery.java  |   126 -
 ...{XYShapePolygonQuery.java => XYShapeQuery.java} |    57 +-
 .../java/org/apache/lucene/geo/ComponentTree.java  |    16 +-
 .../src/java/org/apache/lucene/geo/EdgeTree.java   |    89 +-
 .../java/org/apache/lucene/geo/LatLonGeometry.java |    51 +
 .../core/src/java/org/apache/lucene/geo/Line.java  |     9 +-
 .../src/java/org/apache/lucene/geo/Line2D.java     |    43 +-
 .../core/src/java/org/apache/lucene/geo/Point.java |    87 +
 .../src/java/org/apache/lucene/geo/Point2D.java    |    63 +-
 .../src/java/org/apache/lucene/geo/Polygon.java    |     7 +-
 .../src/java/org/apache/lucene/geo/Polygon2D.java  |    61 +-
 .../src/java/org/apache/lucene/geo/XYGeometry.java |    51 +
 .../src/java/org/apache/lucene/geo/XYLine.java     |    30 +-
 .../src/java/org/apache/lucene/geo/XYPoint.java    |    85 +
 .../src/java/org/apache/lucene/geo/XYPolygon.java  |    34 +-
 .../java/org/apache/lucene/geo/XYPolygon2D.java    |    44 -
 .../java/org/apache/lucene/geo/XYRectangle.java    |     7 +-
 .../java/org/apache/lucene/geo/XYRectangle2D.java  |    22 +-
 .../apache/lucene/index/BaseCompositeReader.java   |     2 +-
 .../java/org/apache/lucene/index/CheckIndex.java   |     4 +-
 .../java/org/apache/lucene/index/CodecReader.java  |     2 +-
 .../org/apache/lucene/index/CompositeReader.java   |     2 +-
 .../apache/lucene/index/DefaultIndexingChain.java  |    14 +-
 .../org/apache/lucene/index/DirectoryReader.java   |     2 +-
 .../lucene/index/ExitableDirectoryReader.java      |     4 +-
 .../java/org/apache/lucene/index/FieldInfo.java    |    56 +-
 .../java/org/apache/lucene/index/FieldInfos.java   |    41 +-
 .../java/org/apache/lucene/index/IndexReader.java  |     2 +-
 .../apache/lucene/index/IndexReaderContext.java    |     4 +-
 .../java/org/apache/lucene/index/IndexWriter.java  |    16 +-
 .../apache/lucene/index/IndexableFieldType.java    |     4 +-
 .../java/org/apache/lucene/index/LeafReader.java   |     2 +-
 .../java/org/apache/lucene/index/MergePolicy.java  |     4 +-
 .../java/org/apache/lucene/index/MultiReader.java  |     2 +-
 .../java/org/apache/lucene/index/PointValues.java  |    10 +-
 .../org/apache/lucene/index/PointValuesWriter.java |    10 +-
 .../java/org/apache/lucene/index/SegmentInfos.java |     4 +-
 .../src/java/org/apache/lucene/index/Sorter.java   |     4 +-
 .../org/apache/lucene/index/SortingLeafReader.java |     4 +-
 .../index/TrackingTmpOutputDirectoryWrapper.java   |     3 +-
 .../java/org/apache/lucene/index/package-info.java |    38 +-
 .../org/apache/lucene/search/CachingCollector.java |     2 +-
 .../java/org/apache/lucene/search/FuzzyQuery.java  |    10 +-
 .../org/apache/lucene/search/IndexSearcher.java    |     2 +-
 .../org/apache/lucene/search/LRUQueryCache.java    |     2 +-
 .../org/apache/lucene/search/PointInSetQuery.java  |     4 +-
 .../apache/lucene/search/QueryCachingPolicy.java   |     2 +-
 .../org/apache/lucene/search/package-info.java     |    28 +-
 .../lucene/search/similarities/Similarity.java     |     8 +-
 .../search/similarities/TFIDFSimilarity.java       |   114 +-
 .../lucene/search/similarities/package-info.java   |    14 +-
 .../java/org/apache/lucene/store/DataOutput.java   |    11 +-
 .../java/org/apache/lucene/store/FSDirectory.java  |     2 +-
 .../lucene/store/OutputStreamIndexOutput.java      |     2 +-
 .../src/java/org/apache/lucene/util/BitUtil.java   |    64 +-
 .../java/org/apache/lucene/util/ByteBlockPool.java |     6 +-
 .../src/java/org/apache/lucene/util/Constants.java |     4 +-
 .../org/apache/lucene/util/FilterIterator.java     |     2 +-
 .../src/java/org/apache/lucene/util/IOUtils.java   |    24 +-
 .../java/org/apache/lucene/util/IntBlockPool.java  |     2 +-
 .../java/org/apache/lucene/util/PriorityQueue.java |     2 +-
 .../org/apache/lucene/util/SparseFixedBitSet.java  |     6 +-
 .../src/java/org/apache/lucene/util/TimSorter.java |     2 +-
 .../org/apache/lucene/util/WeakIdentityMap.java    |     2 +-
 .../apache/lucene/util/automaton/FrozenIntSet.java |    40 +-
 .../org/apache/lucene/util/automaton/IntSet.java   |    46 +
 .../apache/lucene/util/automaton/Operations.java   |    11 +-
 .../org/apache/lucene/util/automaton/RegExp.java   |    71 +-
 .../apache/lucene/util/automaton/SortedIntSet.java |   135 +-
 .../apache/lucene/util/automaton/StatePair.java    |     2 +-
 .../apache/lucene/util/automaton/package-info.java |     8 +-
 .../java/org/apache/lucene/util/bkd/BKDReader.java |     2 +-
 .../java/org/apache/lucene/util/bkd/BKDWriter.java |    20 +-
 .../java/org/apache/lucene/util/compress/LZ4.java  |     8 -
 .../util/packed/AbstractBlockPackedWriter.java     |     2 +-
 .../util/packed/BlockPackedReaderIterator.java     |     2 +-
 .../lucene/util/packed/BlockPackedWriter.java      |     8 +-
 .../lucene/util/packed/DirectMonotonicReader.java  |   112 +-
 .../lucene/util/packed/DirectMonotonicWriter.java  |    17 +-
 .../util/packed/MonotonicBlockPackedWriter.java    |     2 +-
 lucene/core/src/java/overview.html                 |    32 +-
 .../compressing/AbstractTestCompressionMode.java   |    40 +-
 .../codecs/lucene60/TestLucene60PointsFormat.java  |     2 +-
 .../lucene/codecs/lucene80/TestIndexedDISI.java    |    15 +-
 .../lucene80/TestLucene80DocValuesFormat.java      |     4 +-
 .../lucene/document/BaseLatLonShapeTestCase.java   |    16 +-
 .../lucene/document/BaseXYShapeTestCase.java       |    26 +-
 .../org/apache/lucene/document/TestFieldType.java  |     6 +-
 .../apache/lucene/document/TestLatLonShape.java    |    55 +-
 .../lucene/document/TestLatLonShapeEncoding.java   |     4 +-
 .../lucene/document/TestXYLineShapeQueries.java    |    20 +-
 .../document/TestXYMultiLineShapeQueries.java      |     4 +-
 .../document/TestXYMultiPointShapeQueries.java     |     4 +-
 .../document/TestXYMultiPolygonShapeQueries.java   |     6 +-
 .../lucene/document/TestXYPointShapeQueries.java   |    18 +-
 .../lucene/document/TestXYPolygonShapeQueries.java |     4 +-
 .../org/apache/lucene/document/TestXYShape.java    |    13 +-
 .../lucene/document/TestXYShapeEncoding.java       |     8 +-
 .../test/org/apache/lucene/geo/ShapeTestUtil.java  |    55 +-
 .../test/org/apache/lucene/geo/TestGeoUtils.java   |    42 +-
 .../src/test/org/apache/lucene/geo/TestPoint.java  |    31 +-
 .../test/org/apache/lucene/geo/TestPoint2D.java    |    17 +-
 .../test/org/apache/lucene/geo/TestPolygon2D.java  |    22 +-
 .../org/apache/lucene/geo/TestXYRectangle2D.java   |    17 +-
 .../org/apache/lucene/index/TestAddIndexes.java    |    19 +-
 .../org/apache/lucene/index/TestAtomicUpdate.java  |   125 +-
 .../lucene/index/TestBinaryDocValuesUpdates.java   |     7 +-
 .../org/apache/lucene/index/TestByteSlices.java    |    25 +-
 .../lucene/index/TestConcurrentMergeScheduler.java |     3 +-
 .../apache/lucene/index/TestDeletionPolicy.java    |     2 +
 .../index/TestDocumentsWriterStallControl.java     |     4 +-
 .../org/apache/lucene/index/TestIndexWriter.java   |     4 +-
 .../apache/lucene/index/TestIndexWriterDelete.java |     4 +-
 .../lucene/index/TestIndexWriterNRTIsCurrent.java  |     4 +-
 .../apache/lucene/index/TestIndexWriterReader.java |     6 +-
 .../lucene/index/TestIndexWriterUnicode.java       |     2 +-
 .../lucene/index/TestIndexWriterWithThreads.java   |     3 +-
 .../apache/lucene/index/TestIndexableField.java    |     2 +-
 .../lucene/index/TestMixedDocValuesUpdates.java    |     3 +-
 .../lucene/index/TestNRTReaderWithThreads.java     |    52 +-
 .../test/org/apache/lucene/index/TestNorms.java    |    12 +-
 .../lucene/index/TestNumericDocValuesUpdates.java  |     4 +-
 .../org/apache/lucene/index/TestPointValues.java   |    16 +-
 .../org/apache/lucene/index/TestStressAdvance.java |     3 +-
 .../org/apache/lucene/index/TestTermsEnum.java     |     3 +-
 .../apache/lucene/index/TestTieredMergePolicy.java |    32 +-
 .../apache/lucene/search/TestAutomatonQuery.java   |     2 +-
 .../lucene/search/TestDisjunctionMaxQuery.java     |     2 +-
 .../lucene/search/TestDoubleValuesSource.java      |    28 +-
 .../lucene/search/TestMultiThreadTermVectors.java  |   159 +-
 .../org/apache/lucene/search/TestPointQueries.java |     2 +-
 .../org/apache/lucene/search/TestPrefixQuery.java  |     2 +-
 .../lucene/search/TestSameScoresWithThreads.java   |     2 +-
 .../org/apache/lucene/search/TestScorerPerf.java   |     5 +-
 .../lucene/search/TestSearchWithThreads.java       |    35 +-
 .../apache/lucene/search/TestSearcherManager.java  |    16 +-
 .../lucene/store/TestByteBuffersDataInput.java     |     2 +-
 .../lucene/store/TestFileSwitchDirectory.java      |     3 +-
 .../org/apache/lucene/store/TestMultiMMap.java     |     9 +-
 .../test/org/apache/lucene/util/TestBitUtil.java   |     6 +-
 .../apache/lucene/util/TestDocIdSetBuilder.java    |     2 +-
 .../org/apache/lucene/util/TestNumericUtils.java   |     4 +-
 .../org/apache/lucene/util/TestPagedBytes.java     |    12 +-
 .../org/apache/lucene/util/TestSloppyMath.java     |     3 +-
 .../apache/lucene/util/TestWeakIdentityMap.java    |     3 +-
 .../apache/lucene/util/automaton/TestIntSet.java   |    94 +
 .../apache/lucene/util/automaton/TestMinimize.java |     2 +-
 .../test/org/apache/lucene/util/bkd/TestBKD.java   |    52 +-
 .../util/bkd/TestMutablePointsReaderUtils.java     |     2 +-
 .../lucene/util/packed/TestDirectMonotonic.java    |   104 +-
 .../lucene/util/packed/TestDirectPacked.java       |     2 +-
 .../apache/lucene/util/packed/TestPackedInts.java  |    87 +-
 lucene/demo/src/java/overview.html                 |    17 +-
 lucene/expressions/src/java/overview.html          |     4 +-
 .../lucene/search/grouping/GroupingSearch.java     |     4 +-
 .../search/vectorhighlight/package-info.java       |     5 +-
 .../lucene/search/highlight/HighlighterTest.java   |     2 +-
 .../highlight/custom/HighlightCustomQueryTest.java |     2 +-
 .../uhighlight/TestUnifiedHighlighterMTQ.java      |     2 +-
 lucene/ivy-versions.properties                     |     2 +-
 .../search/join/PointInSetIncludingScoreQuery.java |     4 +-
 .../documents/IndexOptionsDialogFactory.java       |     2 +-
 .../luke/models/documents/DocumentField.java       |     2 +-
 .../lucene/luke/models/search/SearchImpl.java      |     2 +-
 .../luke/models/commits/CommitsImplTest.java       |     2 +-
 .../luke/models/documents/DocumentsImplTest.java   |     2 +-
 .../apache/lucene/index/memory/MemoryIndex.java    |    20 +-
 .../org/apache/lucene/misc/IndexMergeTool.java     |    90 +-
 lucene/misc/src/java/overview.html                 |    12 +-
 .../org/apache/lucene/misc/TestIndexMergeTool.java |    65 +
 .../apache/lucene/queries/CommonTermsQuery.java    |     4 +-
 .../queries/intervals/CachingMatchesIterator.java  |    13 +-
 .../intervals/ConjunctionIntervalsSource.java      |    24 +-
 .../intervals/DifferenceIntervalsSource.java       |     7 +-
 .../intervals/DisjunctionIntervalsSource.java      |    88 +-
 .../queries/intervals/ExtendedIntervalsSource.java |     5 +-
 .../queries/intervals/FilteredIntervalsSource.java |     5 +-
 .../intervals/FixedFieldIntervalsSource.java       |     3 +-
 .../lucene/queries/intervals/IntervalIterator.java |     7 +
 .../lucene/queries/intervals/IntervalMatches.java  |    38 +-
 .../queries/intervals/IntervalMatchesIterator.java |    19 +-
 .../lucene/queries/intervals/IntervalsSource.java  |     2 +-
 .../MinimizingConjunctionMatchesIterator.java      |     7 +-
 .../MinimumShouldMatchIntervalsSource.java         |    42 +-
 .../intervals/MultiTermIntervalsSource.java        |    54 +-
 .../queries/intervals/OffsetIntervalsSource.java   |     5 +-
 .../queries/intervals/OrderedIntervalsSource.java  |    52 +-
 .../PayloadFilteredTermIntervalsSource.java        |    16 +-
 .../intervals/RepeatingIntervalsSource.java        |   323 +
 .../queries/intervals/TermIntervalsSource.java     |    16 +-
 .../intervals/UnorderedIntervalsSource.java        |    50 +-
 .../lucene/queries/intervals/TestIntervals.java    |    70 +-
 .../queries/intervals/TestSimplifications.java     |    14 +
 .../queries/payloads/TestPayloadCheckQuery.java    |     8 +-
 .../queries/payloads/TestPayloadScoreQuery.java    |     2 +-
 .../lucene/queryparser/classic/CharStream.java     |     2 +-
 .../lucene/queryparser/classic/FastCharStream.java |     2 +
 .../lucene/queryparser/classic/QueryParser.java    |     9 +-
 .../lucene/queryparser/classic/QueryParser.jj      |     2 +-
 .../queryparser/classic/QueryParserBase.java       |     2 +-
 .../classic/QueryParserTokenManager.java           |     8 +-
 .../lucene/queryparser/classic/package-info.java   |    40 +-
 .../flexible/core/builders/package-info.java       |     2 +-
 .../flexible/core/config/package-info.java         |     2 +-
 .../flexible/core/messages/package-info.java       |     2 +-
 .../flexible/core/nodes/package-info.java          |     2 +-
 .../flexible/core/parser/package-info.java         |     2 +-
 .../flexible/core/processors/package-info.java     |     2 +-
 .../standard/CommonQueryParserConfiguration.java   |     2 +-
 .../flexible/standard/StandardQueryParser.java     |     4 +-
 .../flexible/standard/config/FuzzyConfig.java      |     2 +-
 .../flexible/standard/parser/CharStream.java       |     2 +-
 .../flexible/standard/parser/FastCharStream.java   |     2 +
 .../standard/parser/StandardSyntaxParser.java      |     9 +-
 .../standard/parser/StandardSyntaxParser.jj        |     2 +-
 .../parser/StandardSyntaxParserTokenManager.java   |     7 +-
 .../queryparser/simple/SimpleQueryParser.java      |    18 +-
 .../queryparser/surround/parser/CharStream.java    |     2 +-
 .../surround/parser/FastCharStream.java            |     2 +
 .../queryparser/surround/parser/QueryParser.java   |     8 +-
 .../surround/parser/QueryParserTokenManager.java   |     6 +-
 .../xml/builders/FuzzyLikeThisQueryBuilder.java    |     2 +-
 .../xml/builders/PointRangeQueryBuilder.java       |    11 +-
 lucene/queryparser/src/java/overview.html          |    19 +-
 .../core/builders/TestQueryTreeBuilder.java        |     6 +-
 .../apache/lucene/document/BigIntegerPoint.java    |    10 +-
 .../org/apache/lucene/document/HalfFloatPoint.java |    10 +-
 .../org/apache/lucene/search/CoveringQuery.java    |     4 +-
 .../document/TestFloatPointNearestNeighbor.java    |     2 +-
 .../apache/lucene/spatial/bbox/BBoxStrategy.java   |     2 +-
 .../lucene/spatial/vector/PointVectorStrategy.java |     2 +-
 lucene/spatial-extras/src/java/overview.html       |     1 -
 .../suggest/document/CompletionPostingsFormat.java |     8 +-
 .../lucene/analysis/BaseTokenStreamTestCase.java   |    72 +-
 .../org/apache/lucene/analysis/MockTokenizer.java  |     6 +-
 .../java/org/apache/lucene/analysis/package.html   |     1 -
 .../codecs/asserting/AssertingPointsFormat.java    |     4 +-
 .../codecs/compressing/CompressingCodec.java       |    25 +-
 .../codecs/compressing/FastCompressingCodec.java   |     4 +-
 .../FastDecompressionCompressingCodec.java         |     4 +-
 .../HighCompressionCompressingCodec.java           |     8 +-
 .../compressing/dummy/DummyCompressingCodec.java   |     4 +-
 .../lucene/codecs/cranky/CrankyPointsFormat.java   |     4 +-
 .../apache/lucene/index/AssertingLeafReader.java   |     6 +-
 .../lucene/index/BaseIndexFileFormatTestCase.java  |     2 +-
 .../lucene/index/BaseMergePolicyTestCase.java      |     9 +-
 .../lucene/index/BasePointsFormatTestCase.java     |    38 +-
 .../apache/lucene/index/MismatchedLeafReader.java  |     2 +-
 .../java/org/apache/lucene/index/RandomCodec.java  |     2 +-
 .../org/apache/lucene/index/RandomIndexWriter.java |     2 +-
 .../apache/lucene/index/RandomPostingsTester.java  |     2 +-
 .../ThreadedIndexingAndSearchingTestCase.java      |     2 +-
 .../src/java/org/apache/lucene/index/package.html  |     1 -
 .../java/org/apache/lucene/search/CheckHits.java   |     1 +
 .../src/java/org/apache/lucene/search/package.html |     1 -
 .../similarities/BaseSimilarityTestCase.java       |    17 +-
 .../apache/lucene/search/similarities/package.html |     1 -
 .../org/apache/lucene/util/BaseBitSetTestCase.java |    27 +-
 .../apache/lucene/util/BaseDocIdSetTestCase.java   |    24 +-
 .../org/apache/lucene/util/LuceneTestCase.java     |     8 +-
 .../src/java/org/apache/lucene/util/TestUtil.java  |     2 +-
 .../javadoc/table_padding.css}                     |    27 +-
 .../apache/lucene/validation/LicenseCheckTask.java |     4 +-
 solr/CHANGES.txt                                   |    32 +-
 solr/bin/solr                                      |    10 +-
 solr/bin/solr.cmd                                  |     6 +-
 solr/bin/solr.in.cmd                               |     3 +-
 solr/bin/solr.in.sh                                |     2 +-
 solr/build.xml                                     |     6 -
 solr/contrib/ltr/src/java/overview.html            |     2 +-
 .../apache/solr/cloud/OverseerSolrResponse.java    |    53 +-
 ...se.java => OverseerSolrResponseSerializer.java} |    38 +-
 .../apache/solr/cloud/OverseerTaskProcessor.java   |     6 +-
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |     4 +-
 .../cloud/api/collections/CreateCollectionCmd.java |     1 +
 .../solr/core/IndexDeletionPolicyWrapper.java      |     2 +-
 .../src/java/org/apache/solr/core/SolrCore.java    |    10 +-
 .../solr/handler/FieldAnalysisRequestHandler.java  |    13 +-
 .../apache/solr/handler/RequestHandlerBase.java    |     3 +-
 .../solr/handler/admin/CollectionsHandler.java     |     7 +-
 .../solr/handler/admin/ConfigSetsHandler.java      |     3 +-
 .../handler/admin/SegmentsInfoRequestHandler.java  |     6 +-
 .../solr/handler/component/CloudReplicaSource.java |     2 +-
 .../apache/solr/handler/export/PriorityQueue.java  |     2 +-
 .../java/org/apache/solr/legacy/BBoxStrategy.java  |     2 +-
 .../solr/legacy/LegacyNumericRangeQuery.java       |     4 +-
 .../org/apache/solr/legacy/LegacyNumericUtils.java |     8 +-
 .../apache/solr/legacy/PointVectorStrategy.java    |     2 +-
 .../java/org/apache/solr/parser/CharStream.java    |    18 +-
 .../org/apache/solr/parser/FastCharStream.java     |     9 +-
 .../org/apache/solr/parser/ParseException.java     |     2 +-
 .../java/org/apache/solr/parser/QueryParser.java   |    40 +-
 .../src/java/org/apache/solr/parser/QueryParser.jj |     7 +-
 .../solr/parser/QueryParserTokenManager.java       |    32 +-
 .../apache/solr/parser/SolrQueryParserBase.java    |     2 +-
 .../java/org/apache/solr/parser/TokenMgrError.java |     2 +-
 .../apache/solr/response/SolrQueryResponse.java    |     6 +-
 .../org/apache/solr/schema/ManagedIndexSchema.java |     6 +-
 .../java/org/apache/solr/schema/SchemaField.java   |     2 +-
 .../solr/search/CollapsingQParserPlugin.java       |     2 +-
 .../src/java/org/apache/solr/search/Insanity.java  |     2 +-
 .../org/apache/solr/search/JoinQParserPlugin.java  |   157 +-
 .../search/LegacyNumericRangeQueryBuilder.java     |    11 +-
 .../org/apache/solr/search/TopLevelJoinQuery.java  |   221 +
 .../org/apache/solr/search/ValueSourceParser.java  |     8 +-
 .../org/apache/solr/search/facet/FacetRange.java   |    10 +-
 .../apache/solr/search/facet/UniqueBlockAgg.java   |    32 +-
 .../solr/search/facet/UniqueBlockFieldAgg.java     |    45 +
 .../solr/search/facet/UniqueBlockQueryAgg.java     |    71 +
 .../join/MultiValueTermOrdinalCollector.java       |    65 +
 .../org/apache/solr/store/hdfs/HdfsDirectory.java  |    24 +-
 .../org/apache/solr/store/hdfs/HdfsFileWriter.java |     3 +-
 .../apache/solr/uninverting/FieldCacheImpl.java    |     6 +-
 .../apache/solr/uninverting/UninvertingReader.java |     6 +-
 .../test-files/solr/collection1/conf/schema12.xml  |     2 +
 .../solr/collection1/conf/schema_latest.xml        |     4 +
 solr/core/src/test/org/apache/solr/TestJoin.java   |   166 +-
 .../apache/solr/cloud/ClusterStateMockUtil.java    |   135 +-
 .../solr/cloud/ClusterStateMockUtilTest.java       |    99 +
 .../org/apache/solr/cloud/ClusterStateTest.java    |     2 +
 .../OverseerCollectionConfigSetProcessorTest.java  |     2 +-
 .../solr/cloud/OverseerSolrResponseTest.java       |     6 +-
 ...verseerSolrResponseUnsafeSerializationTest.java |     4 +-
 .../test/org/apache/solr/cloud/SliceStateTest.java |     2 +
 .../handler/component/CloudReplicaSourceTest.java  |   263 +
 .../apache/solr/rest/schema/TestBulkSchemaAPI.java |    77 +-
 .../apache/solr/search/facet/TestJsonFacets.java   |    97 +-
 .../facet/TestJsonFacetsWithNestedObjects.java     |    31 +-
 .../apache/solr/store/hdfs/HdfsDirectoryTest.java  |    38 +-
 .../solr/uninverting/TestUninvertingReader.java    |     4 +-
 solr/licenses/org.restlet-2.3.0.jar.sha1           |     1 -
 solr/licenses/org.restlet-2.4.0.jar.sha1           |     1 +
 .../org.restlet.ext.servlet-2.3.0.jar.sha1         |     1 -
 .../org.restlet.ext.servlet-2.4.0.jar.sha1         |     1 +
 solr/server/solr/zoo.cfg                           |     3 +
 solr/solr-ref-guide/src/format-of-solr-xml.adoc    |    10 +-
 solr/solr-ref-guide/src/json-facet-api.adoc        |     4 +-
 solr/solr-ref-guide/src/other-parsers.adoc         |    85 +-
 solr/solr-ref-guide/src/schema-api.adoc            |     2 +-
 solr/solr-ref-guide/src/securing-solr.adoc         |     4 -
 .../src/stream-decorator-reference.adoc            |    44 +-
 .../solrj/cloud/autoscaling/ReplicaInfo.java       |    21 +-
 .../solr/client/solrj/impl/Http2SolrClient.java    |     4 +-
 .../java/org/apache/solr/client/solrj/io/Lang.java |     3 +-
 .../solr/client/solrj/io/stream/DeleteStream.java  |   112 +
 .../solr/client/solrj/io/stream/JDBCStream.java    |     7 +-
 .../solr/client/solrj/io/stream/UpdateStream.java  |    50 +-
 .../io/stream/expr/StreamExpressionParser.java     |    11 +
 .../org/apache/solr/common/SolrInputDocument.java  |     4 +-
 .../java/org/apache/solr/common/cloud/Replica.java |    17 +-
 .../solr/configsets/streaming/conf/solrconfig.xml  |     5 +
 .../client/solrj/cloud/autoscaling/TestPolicy.java |    69 +-
 .../client/solrj/impl/Http2SolrClientTest.java     |    11 +
 .../org/apache/solr/client/solrj/io/TestLang.java  |     2 +-
 .../solrj/io/stream/CloudAuthStreamTest.java       |   830 +
 .../solrj/io/stream/StreamDecoratorTest.java       |   155 +-
 .../solrj/io/stream/StreamExpressionTest.java      |    28 +-
 .../solrj/routing/ReplicaListTransformerTest.java  |     3 +
 .../ShufflingReplicaListTransformerTest.java       |     9 +-
 .../org/apache/solr/cloud/MockZkStateReader.java   |     7 +
 versions.lock                                      |     4 +-
 versions.props                                     |     2 +-
 478 files changed, 37454 insertions(+), 33296 deletions(-)
 create mode 100644 .github/workflows/gradle-precommit.yml
 create mode 100644 buildSrc/src/main/java/org/apache/lucene/gradle/ProfileResults.java
 create mode 100644 gradle/generation/javacc.gradle
 create mode 100644 gradle/testing/profiling.gradle
 create mode 100644 gradle/testing/profiling.jfc
 delete mode 100644 lucene/core/src/java/org/apache/lucene/codecs/compressing/CompressingStoredFieldsIndexWriter.java
 copy lucene/{queryparser/src/java/org/apache/lucene/queryparser/flexible/core/messages/package-info.java => core/src/java/org/apache/lucene/codecs/compressing/FieldsIndex.java} (68%)
 create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/compressing/FieldsIndexReader.java
 create mode 100644 lucene/core/src/java/org/apache/lucene/codecs/compressing/FieldsIndexWriter.java
 rename lucene/core/src/java/org/apache/lucene/codecs/compressing/{CompressingStoredFieldsIndexReader.java => LegacyFieldsIndexReader.java} (95%)
 delete mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonShapeLineQuery.java
 delete mode 100644 lucene/core/src/java/org/apache/lucene/document/LatLonShapePointQuery.java
 rename lucene/core/src/java/org/apache/lucene/document/{LatLonShapePolygonQuery.java => LatLonShapeQuery.java} (64%)
 delete mode 100644 lucene/core/src/java/org/apache/lucene/document/XYShapeBoundingBoxQuery.java
 delete mode 100644 lucene/core/src/java/org/apache/lucene/document/XYShapeLineQuery.java
 delete mode 100644 lucene/core/src/java/org/apache/lucene/document/XYShapePointQuery.java
 rename lucene/core/src/java/org/apache/lucene/document/{XYShapePolygonQuery.java => XYShapeQuery.java} (62%)
 create mode 100644 lucene/core/src/java/org/apache/lucene/geo/LatLonGeometry.java
 create mode 100644 lucene/core/src/java/org/apache/lucene/geo/Point.java
 create mode 100644 lucene/core/src/java/org/apache/lucene/geo/XYGeometry.java
 create mode 100644 lucene/core/src/java/org/apache/lucene/geo/XYPoint.java
 delete mode 100644 lucene/core/src/java/org/apache/lucene/geo/XYPolygon2D.java
 copy solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java => lucene/core/src/java/org/apache/lucene/util/automaton/FrozenIntSet.java (59%)
 create mode 100644 lucene/core/src/java/org/apache/lucene/util/automaton/IntSet.java
 copy solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java => lucene/core/src/test/org/apache/lucene/geo/TestPoint.java (54%)
 create mode 100644 lucene/core/src/test/org/apache/lucene/util/automaton/TestIntSet.java
 create mode 100644 lucene/misc/src/test/org/apache/lucene/misc/TestIndexMergeTool.java
 create mode 100644 lucene/queries/src/java/org/apache/lucene/queries/intervals/RepeatingIntervalsSource.java
 copy lucene/{queryparser/src/java/org/apache/lucene/queryparser/flexible/core/messages/package-info.java => tools/javadoc/table_padding.css} (72%)
 copy solr/core/src/java/org/apache/solr/cloud/{OverseerSolrResponse.java => OverseerSolrResponseSerializer.java} (84%)
 create mode 100644 solr/core/src/java/org/apache/solr/search/TopLevelJoinQuery.java
 create mode 100644 solr/core/src/java/org/apache/solr/search/facet/UniqueBlockFieldAgg.java
 create mode 100644 solr/core/src/java/org/apache/solr/search/facet/UniqueBlockQueryAgg.java
 create mode 100644 solr/core/src/java/org/apache/solr/search/join/MultiValueTermOrdinalCollector.java
 create mode 100644 solr/core/src/test/org/apache/solr/cloud/ClusterStateMockUtilTest.java
 create mode 100644 solr/core/src/test/org/apache/solr/handler/component/CloudReplicaSourceTest.java
 delete mode 100644 solr/licenses/org.restlet-2.3.0.jar.sha1
 create mode 100644 solr/licenses/org.restlet-2.4.0.jar.sha1
 delete mode 100644 solr/licenses/org.restlet.ext.servlet-2.3.0.jar.sha1
 create mode 100644 solr/licenses/org.restlet.ext.servlet-2.4.0.jar.sha1
 create mode 100644 solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/DeleteStream.java
 create mode 100644 solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/CloudAuthStreamTest.java


[lucene-solr] 01/02: Merge branch 'master' into jira/solr-13996

Posted by sh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

shalin pushed a commit to branch jira/solr-13996
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 8b700836137c3c5d076bb6c5c300200cd36b97a2
Merge: dc76002a f5c132b
Author: Shalin Shekhar Mangar <sh...@apache.org>
AuthorDate: Sat Feb 8 12:24:36 2020 +0530

    Merge branch 'master' into jira/solr-13996

 .github/workflows/gradle-precommit.yml             |    23 +
 build.gradle                                       |     5 +-
 .../org/apache/lucene/gradle/ProfileResults.java   |   215 +
 dev-tools/scripts/checkJavaDocs.py                 |     7 +-
 gradle/defaults-java.gradle                        |     6 +-
 gradle/defaults-javadoc.gradle                     |     5 +-
 gradle/generation/javacc.gradle                    |   385 +
 gradle/generation/jflex.gradle                     |    31 +
 gradle/testing/profiling.gradle                    |    47 +
 gradle/testing/profiling.jfc                       |    41 +
 help/tests.txt                                     |    29 +
 lucene/CHANGES.txt                                 |    33 +
 lucene/MIGRATE.txt                                 |    16 +
 lucene/analysis/common/build.xml                   |     3 +-
 .../lucene/analysis/br/BrazilianStemmer.java       |     4 +-
 .../charfilter/HTMLCharacterEntities.jflex         |     2 +-
 .../analysis/charfilter/HTMLStripCharFilter.java   | 58714 +++++++++----------
 .../lucene/analysis/compound/package-info.java     |     9 +-
 .../apache/lucene/analysis/de/GermanStemmer.java   |     6 +-
 .../ConcatenateGraphFilterFactory.java             |     8 +-
 .../analysis/ngram/EdgeNGramTokenFilter.java       |     2 +-
 .../lucene/analysis/ngram/EdgeNGramTokenizer.java  |     2 +-
 .../lucene/analysis/ngram/NGramTokenizer.java      |     5 +-
 .../lucene/analysis/standard/ClassicFilter.java    |     2 +-
 .../analysis/standard/ClassicTokenizerImpl.java    |     4 +-
 .../standard/UAX29URLEmailTokenizerImpl.java       |     4 +-
 .../analysis/wikipedia/WikipediaTokenizerImpl.java |     4 +-
 .../lucene/analysis/core/TestDuelingAnalyzers.java |    26 +-
 .../icu/segmentation/ICUTokenizerFactory.java      |     2 +-
 lucene/analysis/icu/src/java/overview.html         |    28 +-
 .../lucene/analysis/ja/JapaneseAnalyzer.java       |     2 +-
 .../lucene/analysis/ja/JapaneseTokenizer.java      |    42 +-
 .../analysis/ja/JapaneseTokenizerFactory.java      |     7 +-
 .../lucene/analysis/ja/TestJapaneseAnalyzer.java   |    31 +-
 .../analysis/ja/TestJapaneseNumberFilter.java      |     2 +-
 .../lucene/analysis/ja/TestJapaneseTokenizer.java  |    51 +-
 .../analysis/ja/TestJapaneseTokenizerFactory.java  |    17 +-
 .../apache/lucene/analysis/ja/TestSearchMode.java  |    61 +-
 .../analysis/opennlp/OpenNLPLemmatizerFilter.java  |     2 +-
 .../stempel/src/java/org/egothor/stemmer/Diff.java |     4 +-
 .../src/java/org/egothor/stemmer/Gener.java        |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Lift.java |     2 +-
 .../src/java/org/egothor/stemmer/MultiTrie.java    |     4 +-
 .../src/java/org/egothor/stemmer/MultiTrie2.java   |     4 +-
 .../src/java/org/egothor/stemmer/Optimizer.java    |     4 +-
 .../src/java/org/egothor/stemmer/Optimizer2.java   |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Row.java  |     4 +-
 .../stempel/src/java/org/egothor/stemmer/Trie.java |     4 +-
 lucene/analysis/stempel/src/java/overview.html     |    40 +-
 .../codecs/lucene50/Lucene50PostingsFormat.java    |    20 +-
 .../lucene/benchmark/byTask/package-info.java      |    17 +-
 .../byTask/tasks/AnalyzerFactoryTask.java          |     6 +-
 lucene/build.xml                                   |     9 +-
 .../lucene/codecs/memory/FSTTermsWriter.java       |     4 +-
 .../codecs/simpletext/SimpleTextBKDReader.java     |    18 +-
 .../codecs/simpletext/SimpleTextBKDWriter.java     |    20 +-
 .../simpletext/SimpleTextFieldInfosFormat.java     |     6 +-
 .../codecs/simpletext/SimpleTextPointsReader.java  |     2 +-
 .../codecs/simpletext/SimpleTextPointsWriter.java  |     2 +-
 lucene/common-build.xml                            |    56 +-
 lucene/core/src/data/jflex/skeleton.default        |     4 +-
 .../jflex/skeleton.disable.buffer.expansion.txt    |     4 +-
 .../org/apache/lucene/analysis/package-info.java   |    16 +-
 .../analysis/standard/StandardTokenizerImpl.java   |     4 +-
 .../org/apache/lucene/codecs/PointsWriter.java     |     8 +-
 .../codecs/blocktree/BlockTreeTermsWriter.java     |    92 +-
 .../codecs/blocktree/IntersectTermsEnumFrame.java  |    56 +-
 .../codecs/blocktree/SegmentTermsEnumFrame.java    |    65 +-
 .../org/apache/lucene/codecs/blocktree/Stats.java  |    11 +-
 .../compressing/CompressingStoredFieldsFormat.java |    26 +-
 .../CompressingStoredFieldsIndexWriter.java        |   213 -
 .../compressing/CompressingStoredFieldsReader.java |    90 +-
 .../compressing/CompressingStoredFieldsWriter.java |    41 +-
 .../compressing/CompressingTermVectorsReader.java  |    79 +-
 .../compressing/CompressingTermVectorsWriter.java  |    31 +-
 .../lucene/codecs/compressing/FieldsIndex.java}    |    23 +-
 .../codecs/compressing/FieldsIndexReader.java      |   139 +
 .../codecs/compressing/FieldsIndexWriter.java      |   200 +
 ...dexReader.java => LegacyFieldsIndexReader.java} |    15 +-
 .../codecs/lucene50/Lucene50CompoundFormat.java    |     4 +-
 .../codecs/lucene50/Lucene50FieldInfosFormat.java  |     2 +-
 .../lucene50/Lucene50StoredFieldsFormat.java       |    80 +-
 .../codecs/lucene50/Lucene50TermVectorsFormat.java |    14 +-
 .../codecs/lucene60/Lucene60FieldInfosFormat.java  |     6 +-
 .../codecs/lucene60/Lucene60PointsReader.java      |     2 +-
 .../codecs/lucene60/Lucene60PointsWriter.java      |    12 +-
 .../codecs/lucene70/Lucene70SegmentInfoFormat.java |     2 +-
 .../codecs/lucene80/Lucene80DocValuesFormat.java   |     8 +-
 .../codecs/lucene80/Lucene80NormsFormat.java       |     8 +-
 .../codecs/lucene84/Lucene84PostingsFormat.java    |    20 +-
 .../lucene/codecs/lucene84/package-info.java       |    27 +-
 .../codecs/perfield/PerFieldDocValuesFormat.java   |     4 +-
 .../lucene/codecs/perfield/PerFieldMergeState.java |     2 +-
 .../codecs/perfield/PerFieldPostingsFormat.java    |     4 +-
 .../org/apache/lucene/document/BinaryPoint.java    |     4 +-
 .../org/apache/lucene/document/DoublePoint.java    |    10 +-
 .../org/apache/lucene/document/DoubleRange.java    |    10 +-
 .../java/org/apache/lucene/document/FieldType.java |    49 +-
 .../org/apache/lucene/document/FloatPoint.java     |    10 +-
 .../org/apache/lucene/document/FloatRange.java     |    10 +-
 .../java/org/apache/lucene/document/IntPoint.java  |    10 +-
 .../java/org/apache/lucene/document/IntRange.java  |    10 +-
 .../LatLonDocValuesPointInPolygonQuery.java        |     4 +-
 .../org/apache/lucene/document/LatLonPoint.java    |     6 +-
 .../lucene/document/LatLonPointInPolygonQuery.java |     4 +-
 .../org/apache/lucene/document/LatLonShape.java    |    44 +-
 .../lucene/document/LatLonShapeLineQuery.java      |   143 -
 .../lucene/document/LatLonShapePointQuery.java     |   123 -
 ...hapePolygonQuery.java => LatLonShapeQuery.java} |    69 +-
 .../java/org/apache/lucene/document/LongPoint.java |    10 +-
 .../java/org/apache/lucene/document/LongRange.java |    10 +-
 .../apache/lucene/document/RangeFieldQuery.java    |     4 +-
 .../org/apache/lucene/document/ShapeQuery.java     |     2 +-
 .../java/org/apache/lucene/document/XYShape.java   |    47 +-
 .../lucene/document/XYShapeBoundingBoxQuery.java   |   142 -
 .../apache/lucene/document/XYShapeLineQuery.java   |   146 -
 .../apache/lucene/document/XYShapePointQuery.java  |   126 -
 ...{XYShapePolygonQuery.java => XYShapeQuery.java} |    57 +-
 .../java/org/apache/lucene/geo/ComponentTree.java  |    16 +-
 .../src/java/org/apache/lucene/geo/EdgeTree.java   |    89 +-
 .../java/org/apache/lucene/geo/LatLonGeometry.java |    51 +
 .../core/src/java/org/apache/lucene/geo/Line.java  |     9 +-
 .../src/java/org/apache/lucene/geo/Line2D.java     |    43 +-
 .../core/src/java/org/apache/lucene/geo/Point.java |    87 +
 .../src/java/org/apache/lucene/geo/Point2D.java    |    63 +-
 .../src/java/org/apache/lucene/geo/Polygon.java    |     7 +-
 .../src/java/org/apache/lucene/geo/Polygon2D.java  |    61 +-
 .../src/java/org/apache/lucene/geo/XYGeometry.java |    51 +
 .../src/java/org/apache/lucene/geo/XYLine.java     |    30 +-
 .../src/java/org/apache/lucene/geo/XYPoint.java    |    85 +
 .../src/java/org/apache/lucene/geo/XYPolygon.java  |    34 +-
 .../java/org/apache/lucene/geo/XYPolygon2D.java    |    44 -
 .../java/org/apache/lucene/geo/XYRectangle.java    |     7 +-
 .../java/org/apache/lucene/geo/XYRectangle2D.java  |    22 +-
 .../apache/lucene/index/BaseCompositeReader.java   |     2 +-
 .../java/org/apache/lucene/index/CheckIndex.java   |     4 +-
 .../java/org/apache/lucene/index/CodecReader.java  |     2 +-
 .../org/apache/lucene/index/CompositeReader.java   |     2 +-
 .../apache/lucene/index/DefaultIndexingChain.java  |    14 +-
 .../org/apache/lucene/index/DirectoryReader.java   |     2 +-
 .../lucene/index/ExitableDirectoryReader.java      |     4 +-
 .../java/org/apache/lucene/index/FieldInfo.java    |    56 +-
 .../java/org/apache/lucene/index/FieldInfos.java   |    41 +-
 .../java/org/apache/lucene/index/IndexReader.java  |     2 +-
 .../apache/lucene/index/IndexReaderContext.java    |     4 +-
 .../java/org/apache/lucene/index/IndexWriter.java  |    16 +-
 .../apache/lucene/index/IndexableFieldType.java    |     4 +-
 .../java/org/apache/lucene/index/LeafReader.java   |     2 +-
 .../java/org/apache/lucene/index/MergePolicy.java  |     4 +-
 .../java/org/apache/lucene/index/MultiReader.java  |     2 +-
 .../java/org/apache/lucene/index/PointValues.java  |    10 +-
 .../org/apache/lucene/index/PointValuesWriter.java |    10 +-
 .../java/org/apache/lucene/index/SegmentInfos.java |     4 +-
 .../src/java/org/apache/lucene/index/Sorter.java   |     4 +-
 .../org/apache/lucene/index/SortingLeafReader.java |     4 +-
 .../index/TrackingTmpOutputDirectoryWrapper.java   |     3 +-
 .../java/org/apache/lucene/index/package-info.java |    38 +-
 .../org/apache/lucene/search/CachingCollector.java |     2 +-
 .../java/org/apache/lucene/search/FuzzyQuery.java  |    10 +-
 .../org/apache/lucene/search/IndexSearcher.java    |     2 +-
 .../org/apache/lucene/search/LRUQueryCache.java    |     2 +-
 .../org/apache/lucene/search/PointInSetQuery.java  |     4 +-
 .../apache/lucene/search/QueryCachingPolicy.java   |     2 +-
 .../org/apache/lucene/search/package-info.java     |    28 +-
 .../lucene/search/similarities/Similarity.java     |     8 +-
 .../search/similarities/TFIDFSimilarity.java       |   114 +-
 .../lucene/search/similarities/package-info.java   |    14 +-
 .../java/org/apache/lucene/store/DataOutput.java   |    11 +-
 .../java/org/apache/lucene/store/FSDirectory.java  |     2 +-
 .../lucene/store/OutputStreamIndexOutput.java      |     2 +-
 .../src/java/org/apache/lucene/util/BitUtil.java   |    64 +-
 .../java/org/apache/lucene/util/ByteBlockPool.java |     6 +-
 .../src/java/org/apache/lucene/util/Constants.java |     4 +-
 .../org/apache/lucene/util/FilterIterator.java     |     2 +-
 .../src/java/org/apache/lucene/util/IOUtils.java   |    24 +-
 .../java/org/apache/lucene/util/IntBlockPool.java  |     2 +-
 .../java/org/apache/lucene/util/PriorityQueue.java |     2 +-
 .../org/apache/lucene/util/SparseFixedBitSet.java  |     6 +-
 .../src/java/org/apache/lucene/util/TimSorter.java |     2 +-
 .../org/apache/lucene/util/WeakIdentityMap.java    |     2 +-
 .../apache/lucene/util/automaton/FrozenIntSet.java |    46 +-
 .../org/apache/lucene/util/automaton/IntSet.java   |    46 +
 .../apache/lucene/util/automaton/Operations.java   |    11 +-
 .../org/apache/lucene/util/automaton/RegExp.java   |    71 +-
 .../apache/lucene/util/automaton/SortedIntSet.java |   135 +-
 .../apache/lucene/util/automaton/StatePair.java    |     2 +-
 .../apache/lucene/util/automaton/package-info.java |     8 +-
 .../java/org/apache/lucene/util/bkd/BKDReader.java |     2 +-
 .../java/org/apache/lucene/util/bkd/BKDWriter.java |    20 +-
 .../java/org/apache/lucene/util/compress/LZ4.java  |     8 -
 .../util/packed/AbstractBlockPackedWriter.java     |     2 +-
 .../util/packed/BlockPackedReaderIterator.java     |     2 +-
 .../lucene/util/packed/BlockPackedWriter.java      |     8 +-
 .../lucene/util/packed/DirectMonotonicReader.java  |   112 +-
 .../lucene/util/packed/DirectMonotonicWriter.java  |    17 +-
 .../util/packed/MonotonicBlockPackedWriter.java    |     2 +-
 lucene/core/src/java/overview.html                 |    32 +-
 .../compressing/AbstractTestCompressionMode.java   |    40 +-
 .../codecs/lucene60/TestLucene60PointsFormat.java  |     2 +-
 .../lucene/codecs/lucene80/TestIndexedDISI.java    |    15 +-
 .../lucene80/TestLucene80DocValuesFormat.java      |     4 +-
 .../lucene/document/BaseLatLonShapeTestCase.java   |    16 +-
 .../lucene/document/BaseXYShapeTestCase.java       |    26 +-
 .../org/apache/lucene/document/TestFieldType.java  |     6 +-
 .../apache/lucene/document/TestLatLonShape.java    |    55 +-
 .../lucene/document/TestLatLonShapeEncoding.java   |     4 +-
 .../lucene/document/TestXYLineShapeQueries.java    |    20 +-
 .../document/TestXYMultiLineShapeQueries.java      |     4 +-
 .../document/TestXYMultiPointShapeQueries.java     |     4 +-
 .../document/TestXYMultiPolygonShapeQueries.java   |     6 +-
 .../lucene/document/TestXYPointShapeQueries.java   |    18 +-
 .../lucene/document/TestXYPolygonShapeQueries.java |     4 +-
 .../org/apache/lucene/document/TestXYShape.java    |    13 +-
 .../lucene/document/TestXYShapeEncoding.java       |     8 +-
 .../test/org/apache/lucene/geo/ShapeTestUtil.java  |    55 +-
 .../test/org/apache/lucene/geo/TestGeoUtils.java   |    42 +-
 .../src/test/org/apache/lucene/geo/TestPoint.java} |    38 +-
 .../test/org/apache/lucene/geo/TestPoint2D.java    |    17 +-
 .../test/org/apache/lucene/geo/TestPolygon2D.java  |    22 +-
 .../org/apache/lucene/geo/TestXYRectangle2D.java   |    17 +-
 .../org/apache/lucene/index/TestAddIndexes.java    |    19 +-
 .../org/apache/lucene/index/TestAtomicUpdate.java  |   125 +-
 .../lucene/index/TestBinaryDocValuesUpdates.java   |     7 +-
 .../org/apache/lucene/index/TestByteSlices.java    |    25 +-
 .../lucene/index/TestConcurrentMergeScheduler.java |     3 +-
 .../apache/lucene/index/TestDeletionPolicy.java    |     2 +
 .../index/TestDocumentsWriterStallControl.java     |     4 +-
 .../org/apache/lucene/index/TestIndexWriter.java   |     4 +-
 .../apache/lucene/index/TestIndexWriterDelete.java |     4 +-
 .../lucene/index/TestIndexWriterNRTIsCurrent.java  |     4 +-
 .../apache/lucene/index/TestIndexWriterReader.java |     6 +-
 .../lucene/index/TestIndexWriterUnicode.java       |     2 +-
 .../lucene/index/TestIndexWriterWithThreads.java   |     3 +-
 .../apache/lucene/index/TestIndexableField.java    |     2 +-
 .../lucene/index/TestMixedDocValuesUpdates.java    |     3 +-
 .../lucene/index/TestNRTReaderWithThreads.java     |    52 +-
 .../test/org/apache/lucene/index/TestNorms.java    |    12 +-
 .../lucene/index/TestNumericDocValuesUpdates.java  |     4 +-
 .../org/apache/lucene/index/TestPointValues.java   |    16 +-
 .../org/apache/lucene/index/TestStressAdvance.java |     3 +-
 .../org/apache/lucene/index/TestTermsEnum.java     |     3 +-
 .../apache/lucene/index/TestTieredMergePolicy.java |    32 +-
 .../apache/lucene/search/TestAutomatonQuery.java   |     2 +-
 .../lucene/search/TestDisjunctionMaxQuery.java     |     2 +-
 .../lucene/search/TestDoubleValuesSource.java      |    28 +-
 .../lucene/search/TestMultiThreadTermVectors.java  |   159 +-
 .../org/apache/lucene/search/TestPointQueries.java |     2 +-
 .../org/apache/lucene/search/TestPrefixQuery.java  |     2 +-
 .../lucene/search/TestSameScoresWithThreads.java   |     2 +-
 .../org/apache/lucene/search/TestScorerPerf.java   |     5 +-
 .../lucene/search/TestSearchWithThreads.java       |    35 +-
 .../apache/lucene/search/TestSearcherManager.java  |    16 +-
 .../lucene/store/TestByteBuffersDataInput.java     |     2 +-
 .../lucene/store/TestFileSwitchDirectory.java      |     3 +-
 .../org/apache/lucene/store/TestMultiMMap.java     |     9 +-
 .../test/org/apache/lucene/util/TestBitUtil.java   |     6 +-
 .../apache/lucene/util/TestDocIdSetBuilder.java    |     2 +-
 .../org/apache/lucene/util/TestNumericUtils.java   |     4 +-
 .../org/apache/lucene/util/TestPagedBytes.java     |    12 +-
 .../org/apache/lucene/util/TestSloppyMath.java     |     3 +-
 .../apache/lucene/util/TestWeakIdentityMap.java    |     3 +-
 .../apache/lucene/util/automaton/TestIntSet.java   |    94 +
 .../apache/lucene/util/automaton/TestMinimize.java |     2 +-
 .../test/org/apache/lucene/util/bkd/TestBKD.java   |    52 +-
 .../util/bkd/TestMutablePointsReaderUtils.java     |     2 +-
 .../lucene/util/packed/TestDirectMonotonic.java    |   104 +-
 .../lucene/util/packed/TestDirectPacked.java       |     2 +-
 .../apache/lucene/util/packed/TestPackedInts.java  |    87 +-
 lucene/demo/src/java/overview.html                 |    17 +-
 lucene/expressions/src/java/overview.html          |     4 +-
 .../lucene/search/grouping/GroupingSearch.java     |     4 +-
 .../search/vectorhighlight/package-info.java       |     5 +-
 .../lucene/search/highlight/HighlighterTest.java   |     2 +-
 .../highlight/custom/HighlightCustomQueryTest.java |     2 +-
 .../uhighlight/TestUnifiedHighlighterMTQ.java      |     2 +-
 lucene/ivy-versions.properties                     |     2 +-
 .../search/join/PointInSetIncludingScoreQuery.java |     4 +-
 .../documents/IndexOptionsDialogFactory.java       |     2 +-
 .../luke/models/documents/DocumentField.java       |     2 +-
 .../lucene/luke/models/search/SearchImpl.java      |     2 +-
 .../luke/models/commits/CommitsImplTest.java       |     2 +-
 .../luke/models/documents/DocumentsImplTest.java   |     2 +-
 .../apache/lucene/index/memory/MemoryIndex.java    |    20 +-
 .../org/apache/lucene/misc/IndexMergeTool.java     |    90 +-
 lucene/misc/src/java/overview.html                 |    12 +-
 .../org/apache/lucene/misc/TestIndexMergeTool.java |    65 +
 .../apache/lucene/queries/CommonTermsQuery.java    |     4 +-
 .../queries/intervals/CachingMatchesIterator.java  |    13 +-
 .../intervals/ConjunctionIntervalsSource.java      |    24 +-
 .../intervals/DifferenceIntervalsSource.java       |     7 +-
 .../intervals/DisjunctionIntervalsSource.java      |    88 +-
 .../queries/intervals/ExtendedIntervalsSource.java |     5 +-
 .../queries/intervals/FilteredIntervalsSource.java |     5 +-
 .../intervals/FixedFieldIntervalsSource.java       |     3 +-
 .../lucene/queries/intervals/IntervalIterator.java |     7 +
 .../lucene/queries/intervals/IntervalMatches.java  |    38 +-
 .../queries/intervals/IntervalMatchesIterator.java |    19 +-
 .../lucene/queries/intervals/IntervalsSource.java  |     2 +-
 .../MinimizingConjunctionMatchesIterator.java      |     7 +-
 .../MinimumShouldMatchIntervalsSource.java         |    42 +-
 .../intervals/MultiTermIntervalsSource.java        |    54 +-
 .../queries/intervals/OffsetIntervalsSource.java   |     5 +-
 .../queries/intervals/OrderedIntervalsSource.java  |    52 +-
 .../PayloadFilteredTermIntervalsSource.java        |    16 +-
 .../intervals/RepeatingIntervalsSource.java        |   323 +
 .../queries/intervals/TermIntervalsSource.java     |    16 +-
 .../intervals/UnorderedIntervalsSource.java        |    50 +-
 .../lucene/queries/intervals/TestIntervals.java    |    70 +-
 .../queries/intervals/TestSimplifications.java     |    14 +
 .../queries/payloads/TestPayloadCheckQuery.java    |     8 +-
 .../queries/payloads/TestPayloadScoreQuery.java    |     2 +-
 .../lucene/queryparser/classic/CharStream.java     |     2 +-
 .../lucene/queryparser/classic/FastCharStream.java |     2 +
 .../lucene/queryparser/classic/QueryParser.java    |     9 +-
 .../lucene/queryparser/classic/QueryParser.jj      |     2 +-
 .../queryparser/classic/QueryParserBase.java       |     2 +-
 .../classic/QueryParserTokenManager.java           |     8 +-
 .../lucene/queryparser/classic/package-info.java   |    40 +-
 .../flexible/core/builders/package-info.java       |     2 +-
 .../flexible/core/config/package-info.java         |     2 +-
 .../flexible/core/messages/package-info.java       |     2 +-
 .../flexible/core/nodes/package-info.java          |     2 +-
 .../flexible/core/parser/package-info.java         |     2 +-
 .../flexible/core/processors/package-info.java     |     2 +-
 .../standard/CommonQueryParserConfiguration.java   |     2 +-
 .../flexible/standard/StandardQueryParser.java     |     4 +-
 .../flexible/standard/config/FuzzyConfig.java      |     2 +-
 .../flexible/standard/parser/CharStream.java       |     2 +-
 .../flexible/standard/parser/FastCharStream.java   |     2 +
 .../standard/parser/StandardSyntaxParser.java      |     9 +-
 .../standard/parser/StandardSyntaxParser.jj        |     2 +-
 .../parser/StandardSyntaxParserTokenManager.java   |     7 +-
 .../queryparser/simple/SimpleQueryParser.java      |    18 +-
 .../queryparser/surround/parser/CharStream.java    |     2 +-
 .../surround/parser/FastCharStream.java            |     2 +
 .../queryparser/surround/parser/QueryParser.java   |     8 +-
 .../surround/parser/QueryParserTokenManager.java   |     6 +-
 .../xml/builders/FuzzyLikeThisQueryBuilder.java    |     2 +-
 .../xml/builders/PointRangeQueryBuilder.java       |    11 +-
 lucene/queryparser/src/java/overview.html          |    19 +-
 .../core/builders/TestQueryTreeBuilder.java        |     6 +-
 .../apache/lucene/document/BigIntegerPoint.java    |    10 +-
 .../org/apache/lucene/document/HalfFloatPoint.java |    10 +-
 .../org/apache/lucene/search/CoveringQuery.java    |     4 +-
 .../document/TestFloatPointNearestNeighbor.java    |     2 +-
 .../apache/lucene/spatial/bbox/BBoxStrategy.java   |     2 +-
 .../lucene/spatial/vector/PointVectorStrategy.java |     2 +-
 lucene/spatial-extras/src/java/overview.html       |     1 -
 .../suggest/document/CompletionPostingsFormat.java |     8 +-
 .../lucene/analysis/BaseTokenStreamTestCase.java   |    72 +-
 .../org/apache/lucene/analysis/MockTokenizer.java  |     6 +-
 .../java/org/apache/lucene/analysis/package.html   |     1 -
 .../codecs/asserting/AssertingPointsFormat.java    |     4 +-
 .../codecs/compressing/CompressingCodec.java       |    25 +-
 .../codecs/compressing/FastCompressingCodec.java   |     4 +-
 .../FastDecompressionCompressingCodec.java         |     4 +-
 .../HighCompressionCompressingCodec.java           |     8 +-
 .../compressing/dummy/DummyCompressingCodec.java   |     4 +-
 .../lucene/codecs/cranky/CrankyPointsFormat.java   |     4 +-
 .../apache/lucene/index/AssertingLeafReader.java   |     6 +-
 .../lucene/index/BaseIndexFileFormatTestCase.java  |     2 +-
 .../lucene/index/BaseMergePolicyTestCase.java      |     9 +-
 .../lucene/index/BasePointsFormatTestCase.java     |    38 +-
 .../apache/lucene/index/MismatchedLeafReader.java  |     2 +-
 .../java/org/apache/lucene/index/RandomCodec.java  |     2 +-
 .../org/apache/lucene/index/RandomIndexWriter.java |     2 +-
 .../apache/lucene/index/RandomPostingsTester.java  |     2 +-
 .../ThreadedIndexingAndSearchingTestCase.java      |     2 +-
 .../src/java/org/apache/lucene/index/package.html  |     1 -
 .../java/org/apache/lucene/search/CheckHits.java   |     1 +
 .../src/java/org/apache/lucene/search/package.html |     1 -
 .../similarities/BaseSimilarityTestCase.java       |    17 +-
 .../apache/lucene/search/similarities/package.html |     1 -
 .../org/apache/lucene/util/BaseBitSetTestCase.java |    27 +-
 .../apache/lucene/util/BaseDocIdSetTestCase.java   |    24 +-
 .../org/apache/lucene/util/LuceneTestCase.java     |     8 +-
 .../src/java/org/apache/lucene/util/TestUtil.java  |     2 +-
 .../javadoc/table_padding.css}                     |    27 +-
 .../apache/lucene/validation/LicenseCheckTask.java |     4 +-
 solr/CHANGES.txt                                   |    32 +-
 solr/bin/solr                                      |    10 +-
 solr/bin/solr.cmd                                  |     6 +-
 solr/bin/solr.in.cmd                               |     3 +-
 solr/bin/solr.in.sh                                |     2 +-
 solr/build.xml                                     |     6 -
 solr/contrib/ltr/src/java/overview.html            |     2 +-
 .../apache/solr/cloud/OverseerSolrResponse.java    |    53 +-
 ...se.java => OverseerSolrResponseSerializer.java} |    38 +-
 .../apache/solr/cloud/OverseerTaskProcessor.java   |     6 +-
 .../java/org/apache/solr/cloud/ZkShardTerms.java   |     4 +-
 .../cloud/api/collections/CreateCollectionCmd.java |     1 +
 .../solr/core/IndexDeletionPolicyWrapper.java      |     2 +-
 .../src/java/org/apache/solr/core/SolrCore.java    |    10 +-
 .../solr/handler/FieldAnalysisRequestHandler.java  |    13 +-
 .../apache/solr/handler/RequestHandlerBase.java    |     3 +-
 .../solr/handler/admin/CollectionsHandler.java     |     7 +-
 .../solr/handler/admin/ConfigSetsHandler.java      |     3 +-
 .../handler/admin/SegmentsInfoRequestHandler.java  |     6 +-
 .../apache/solr/handler/export/PriorityQueue.java  |     2 +-
 .../java/org/apache/solr/legacy/BBoxStrategy.java  |     2 +-
 .../solr/legacy/LegacyNumericRangeQuery.java       |     4 +-
 .../org/apache/solr/legacy/LegacyNumericUtils.java |     8 +-
 .../apache/solr/legacy/PointVectorStrategy.java    |     2 +-
 .../java/org/apache/solr/parser/CharStream.java    |    18 +-
 .../org/apache/solr/parser/FastCharStream.java     |     9 +-
 .../org/apache/solr/parser/ParseException.java     |     2 +-
 .../java/org/apache/solr/parser/QueryParser.java   |    40 +-
 .../src/java/org/apache/solr/parser/QueryParser.jj |     7 +-
 .../solr/parser/QueryParserTokenManager.java       |    32 +-
 .../apache/solr/parser/SolrQueryParserBase.java    |     2 +-
 .../java/org/apache/solr/parser/TokenMgrError.java |     2 +-
 .../apache/solr/response/SolrQueryResponse.java    |     6 +-
 .../org/apache/solr/schema/ManagedIndexSchema.java |     6 +-
 .../java/org/apache/solr/schema/SchemaField.java   |     2 +-
 .../solr/search/CollapsingQParserPlugin.java       |     2 +-
 .../src/java/org/apache/solr/search/Insanity.java  |     2 +-
 .../org/apache/solr/search/JoinQParserPlugin.java  |   157 +-
 .../search/LegacyNumericRangeQueryBuilder.java     |    11 +-
 .../org/apache/solr/search/TopLevelJoinQuery.java  |   221 +
 .../org/apache/solr/search/ValueSourceParser.java  |     8 +-
 .../org/apache/solr/search/facet/FacetRange.java   |    10 +-
 .../apache/solr/search/facet/UniqueBlockAgg.java   |    32 +-
 .../solr/search/facet/UniqueBlockFieldAgg.java     |    45 +
 .../solr/search/facet/UniqueBlockQueryAgg.java     |    71 +
 .../join/MultiValueTermOrdinalCollector.java       |    65 +
 .../org/apache/solr/store/hdfs/HdfsDirectory.java  |    24 +-
 .../org/apache/solr/store/hdfs/HdfsFileWriter.java |     3 +-
 .../apache/solr/uninverting/FieldCacheImpl.java    |     6 +-
 .../apache/solr/uninverting/UninvertingReader.java |     6 +-
 .../test-files/solr/collection1/conf/schema12.xml  |     2 +
 .../solr/collection1/conf/schema_latest.xml        |     4 +
 solr/core/src/test/org/apache/solr/TestJoin.java   |   166 +-
 .../apache/solr/cloud/ClusterStateMockUtil.java    |   120 +-
 .../solr/cloud/ClusterStateMockUtilTest.java       |    99 +
 .../org/apache/solr/cloud/ClusterStateTest.java    |     2 +
 .../OverseerCollectionConfigSetProcessorTest.java  |     2 +-
 .../solr/cloud/OverseerSolrResponseTest.java       |     6 +-
 ...verseerSolrResponseUnsafeSerializationTest.java |     4 +-
 .../test/org/apache/solr/cloud/SliceStateTest.java |     2 +
 .../apache/solr/rest/schema/TestBulkSchemaAPI.java |    77 +-
 .../apache/solr/search/facet/TestJsonFacets.java   |    97 +-
 .../facet/TestJsonFacetsWithNestedObjects.java     |    31 +-
 .../apache/solr/store/hdfs/HdfsDirectoryTest.java  |    38 +-
 .../solr/uninverting/TestUninvertingReader.java    |     4 +-
 solr/licenses/org.restlet-2.3.0.jar.sha1           |     1 -
 solr/licenses/org.restlet-2.4.0.jar.sha1           |     1 +
 .../org.restlet.ext.servlet-2.3.0.jar.sha1         |     1 -
 .../org.restlet.ext.servlet-2.4.0.jar.sha1         |     1 +
 solr/server/solr/zoo.cfg                           |     3 +
 solr/solr-ref-guide/src/format-of-solr-xml.adoc    |    10 +-
 solr/solr-ref-guide/src/json-facet-api.adoc        |     4 +-
 solr/solr-ref-guide/src/other-parsers.adoc         |    85 +-
 solr/solr-ref-guide/src/schema-api.adoc            |     2 +-
 solr/solr-ref-guide/src/securing-solr.adoc         |     4 -
 .../src/stream-decorator-reference.adoc            |    44 +-
 .../solrj/cloud/autoscaling/ReplicaInfo.java       |    21 +-
 .../solr/client/solrj/impl/Http2SolrClient.java    |     4 +-
 .../java/org/apache/solr/client/solrj/io/Lang.java |     3 +-
 .../solr/client/solrj/io/stream/DeleteStream.java  |   112 +
 .../solr/client/solrj/io/stream/JDBCStream.java    |     7 +-
 .../solr/client/solrj/io/stream/UpdateStream.java  |    50 +-
 .../io/stream/expr/StreamExpressionParser.java     |    11 +
 .../org/apache/solr/common/SolrInputDocument.java  |     4 +-
 .../java/org/apache/solr/common/cloud/Replica.java |    17 +-
 .../solr/configsets/streaming/conf/solrconfig.xml  |     5 +
 .../client/solrj/cloud/autoscaling/TestPolicy.java |    69 +-
 .../client/solrj/impl/Http2SolrClientTest.java     |    11 +
 .../org/apache/solr/client/solrj/io/TestLang.java  |     2 +-
 .../solrj/io/stream/CloudAuthStreamTest.java       |   830 +
 .../solrj/io/stream/StreamDecoratorTest.java       |   155 +-
 .../solrj/io/stream/StreamExpressionTest.java      |    28 +-
 .../solrj/routing/ReplicaListTransformerTest.java  |     3 +
 .../ShufflingReplicaListTransformerTest.java       |     9 +-
 versions.lock                                      |     4 +-
 versions.props                                     |     2 +-
 475 files changed, 37169 insertions(+), 33307 deletions(-)


[lucene-solr] 02/02: SOLR-13996: Fixes a bug in the IsLeader predicate that used the builder's collection instead of the slice's collection. Added tests for CloudReplicaSource. Added support for making the first nrt or tlog replica as the leader in ClusterStateMockUtil.

Posted by sh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

shalin pushed a commit to branch jira/solr-13996
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit f93ac6e6dd6220f3884c9968310d1732617d0414
Author: Shalin Shekhar Mangar <sh...@apache.org>
AuthorDate: Sun Feb 9 07:57:25 2020 +0530

    SOLR-13996: Fixes a bug in the IsLeader predicate that used the builder's collection instead of the slice's collection. Added tests for CloudReplicaSource. Added support for making the first nrt or tlog replica as the leader in ClusterStateMockUtil.
---
 .../solr/handler/component/CloudReplicaSource.java |   2 +-
 .../apache/solr/cloud/ClusterStateMockUtil.java    |  19 +-
 .../handler/component/CloudReplicaSourceTest.java  | 263 +++++++++++++++++++++
 .../org/apache/solr/cloud/MockZkStateReader.java   |   7 +
 4 files changed, 289 insertions(+), 2 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java b/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java
index 272c00d..fb0285c 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/CloudReplicaSource.java
@@ -126,7 +126,7 @@ class CloudReplicaSource implements ReplicaSource {
       // if partial results are acceptable
       return Collections.emptyList();
     } else {
-      final Predicate<Replica> isShardLeader = new IsLeaderPredicate(builder.zkStateReader, clusterState, builder.collection, slice.getName());
+      final Predicate<Replica> isShardLeader = new IsLeaderPredicate(builder.zkStateReader, clusterState, slice.getCollection(), slice.getName());
       List<Replica> list = slice.getReplicas()
           .stream()
           .filter(replica -> replica.isActive(clusterState.getLiveNodes()))
diff --git a/solr/core/src/test/org/apache/solr/cloud/ClusterStateMockUtil.java b/solr/core/src/test/org/apache/solr/cloud/ClusterStateMockUtil.java
index 90df39a..f41d80a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ClusterStateMockUtil.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ClusterStateMockUtil.java
@@ -158,9 +158,26 @@ public class ClusterStateMockUtil {
           Map<String, Object> replicaPropMap = makeReplicaProps(sliceName, node, replicaName, stateCode, m.group(1));
           if (collName == null) collName = "collection" + (collectionStates.size() + 1);
           if (sliceName == null) collName = "slice" + (slices.size() + 1);
-          replica = new Replica(replicaName, replicaPropMap, collName, sliceName);
 
+          // O(n^2) alert! but this is for mocks and testing so shouldn't be used for very large cluster states
+          boolean leaderFound = false;
+          for (Map.Entry<String, Replica> entry : replicas.entrySet()) {
+            Replica value = entry.getValue();
+            if ("true".equals(value.get(Slice.LEADER)))  {
+              leaderFound = true;
+              break;
+            }
+          }
+          if (!leaderFound && !m.group(1).equals("p")) {
+            replicaPropMap.put(Slice.LEADER, "true");
+          }
+          replica = new Replica(replicaName, replicaPropMap, collName, sliceName);
           replicas.put(replica.getName(), replica);
+
+          // hack alert: re-create slice with existing data and new replicas map so that it updates its internal leader attribute
+          slice = new Slice(slice.getName(), replicas, null, collName);
+          slices.put(slice.getName(), slice);
+          // we don't need to update doc collection again because we aren't adding a new slice or changing its state
           break;
         default:
           break;
diff --git a/solr/core/src/test/org/apache/solr/handler/component/CloudReplicaSourceTest.java b/solr/core/src/test/org/apache/solr/handler/component/CloudReplicaSourceTest.java
new file mode 100644
index 0000000..186af33
--- /dev/null
+++ b/solr/core/src/test/org/apache/solr/handler/component/CloudReplicaSourceTest.java
@@ -0,0 +1,263 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.handler.component;
+
+import java.util.List;
+
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.routing.ReplicaListTransformer;
+import org.apache.solr.cloud.ClusterStateMockUtil;
+import org.apache.solr.common.cloud.ZkStateReader;
+import org.apache.solr.common.params.ModifiableSolrParams;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+/**
+ * Tests for {@link CloudReplicaSource}
+ */
+public class CloudReplicaSourceTest extends SolrTestCaseJ4 {
+
+  @BeforeClass
+  public static void setup() {
+    assumeWorkingMockito();
+  }
+
+  @Test
+  public void testSimple_ShardsParam() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("shards", "slice1,slice2");
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csr*sr2", "baseUrl1_", "baseUrl2_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(false)
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(2, cloudReplicaSource.getSliceCount());
+      assertEquals(2, cloudReplicaSource.getSliceNames().size());
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(0).size());
+      assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(0).get(0));
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(1).size());
+      assertEquals("http://baseUrl2/slice2_replica2/", cloudReplicaSource.getReplicasBySlice(1).get(0));
+    }
+  }
+
+  @Test
+  public void testShardsParam_DeadNode() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("shards", "slice1,slice2");
+    // here node2 is not live so there should be no replicas found for slice2
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csr*sr2", "baseUrl1_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(false)
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(2, cloudReplicaSource.getSliceCount());
+      assertEquals(2, cloudReplicaSource.getSliceNames().size());
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(0).size());
+      assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(0).get(0));
+      assertEquals(0, cloudReplicaSource.getReplicasBySlice(1).size());
+    }
+  }
+
+  @Test
+  public void testShardsParam_DownReplica() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("shards", "slice1,slice2");
+    // here replica3 is in DOWN state so only 1 replica should be returned for slice2
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csr*sr2r3D", "baseUrl1_", "baseUrl2_", "baseUrl3_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(false)
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(2, cloudReplicaSource.getSliceCount());
+      assertEquals(2, cloudReplicaSource.getSliceNames().size());
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(0).size());
+      assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(0).get(0));
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(1).size());
+      assertEquals(1, cloudReplicaSource.getReplicasBySlice(1).size());
+      assertEquals("http://baseUrl2/slice2_replica2/", cloudReplicaSource.getReplicasBySlice(1).get(0));
+    }
+  }
+
+  @Test
+  public void testMultipleCollections() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("collection", "collection1,collection2");
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csr*sr2csr*", "baseUrl1_", "baseUrl2_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(false)
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(3, cloudReplicaSource.getSliceCount());
+      List<String> sliceNames = cloudReplicaSource.getSliceNames();
+      assertEquals(3, sliceNames.size());
+      for (int i = 0; i < cloudReplicaSource.getSliceCount(); i++) {
+        String sliceName = sliceNames.get(i);
+        assertEquals(1, cloudReplicaSource.getReplicasBySlice(i).size());
+
+        // need a switch here because unlike the testShards* tests which always returns slices in the order they were specified,
+        // using the collection param can return slice names in any order
+        switch (sliceName) {
+          case "collection1_slice1":
+            assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "collection1_slice2":
+            assertEquals("http://baseUrl2/slice2_replica2/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "collection2_slice1":
+            assertEquals("http://baseUrl1/slice1_replica3/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+        }
+      }
+    }
+  }
+
+  @Test
+  public void testSimple_UsingClusterState() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csr*sr2", "baseUrl1_", "baseUrl2_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(false)
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(2, cloudReplicaSource.getSliceCount());
+      List<String> sliceNames = cloudReplicaSource.getSliceNames();
+      assertEquals(2, sliceNames.size());
+      for (int i = 0; i < cloudReplicaSource.getSliceCount(); i++) {
+        String sliceName = sliceNames.get(i);
+        assertEquals(1, cloudReplicaSource.getReplicasBySlice(i).size());
+
+        // need to switch because without a shards param, the order of slices is not deterministic
+        switch (sliceName) {
+          case "slice1":
+            assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "slice2":
+            assertEquals("http://baseUrl2/slice2_replica2/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+        }
+      }
+    }
+  }
+
+  @Test
+  public void testSimple_OnlyNrt() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    // the cluster state will have slice2 with two tlog replicas out of which the first one will be the leader
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csrr*st2t2", "baseUrl1_", "baseUrl2_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(true) // enable only nrt mode
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(2, cloudReplicaSource.getSliceCount());
+      List<String> sliceNames = cloudReplicaSource.getSliceNames();
+      assertEquals(2, sliceNames.size());
+      for (int i = 0; i < cloudReplicaSource.getSliceCount(); i++) {
+        String sliceName = sliceNames.get(i);
+        // need to switch because without a shards param, the order of slices is not deterministic
+        switch (sliceName) {
+          case "slice1":
+            assertEquals(2, cloudReplicaSource.getReplicasBySlice(i).size());
+            assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "slice2":
+            assertEquals(1, cloudReplicaSource.getReplicasBySlice(i).size());
+            assertEquals("http://baseUrl2/slice2_replica3/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+        }
+      }
+    }
+  }
+
+  @Test
+  public void testMultipleCollections_OnlyNrt() {
+    ReplicaListTransformer replicaListTransformer = Mockito.mock(ReplicaListTransformer.class);
+    HttpShardHandlerFactory.WhitelistHostChecker whitelistHostChecker = Mockito.mock(HttpShardHandlerFactory.WhitelistHostChecker.class);
+    ModifiableSolrParams params = new ModifiableSolrParams();
+    params.set("collection", "collection1,collection2");
+    // the cluster state will have collection1 with slice2 with two tlog replicas out of which the first one will be the leader
+    // and collection2 with just a single slice and a tlog replica that will be leader
+    try (ZkStateReader zkStateReader = ClusterStateMockUtil.buildClusterState("csrr*st2t2cst", "baseUrl1_", "baseUrl2_")) {
+      CloudReplicaSource cloudReplicaSource = new CloudReplicaSource.Builder()
+          .collection("collection1")
+          .onlyNrt(true) // enable only nrt mode
+          .zkStateReader(zkStateReader)
+          .replicaListTransformer(replicaListTransformer)
+          .whitelistHostChecker(whitelistHostChecker)
+          .params(params)
+          .build();
+      assertEquals(3, cloudReplicaSource.getSliceCount());
+      List<String> sliceNames = cloudReplicaSource.getSliceNames();
+      assertEquals(3, sliceNames.size());
+      for (int i = 0; i < cloudReplicaSource.getSliceCount(); i++) {
+        String sliceName = sliceNames.get(i);
+        // need to switch because without a shards param, the order of slices is not deterministic
+        switch (sliceName) {
+          case "collection1_slice1":
+            assertEquals(2, cloudReplicaSource.getReplicasBySlice(i).size());
+            assertEquals("http://baseUrl1/slice1_replica1/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "collection1_slice2":
+            assertEquals(1, cloudReplicaSource.getReplicasBySlice(i).size());
+            assertEquals("http://baseUrl2/slice2_replica3/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+          case "collection2_slice1":
+            assertEquals(1, cloudReplicaSource.getReplicasBySlice(i).size());
+            assertEquals("http://baseUrl1/slice1_replica5/", cloudReplicaSource.getReplicasBySlice(i).get(0));
+            break;
+        }
+      }
+    }
+  }
+}
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java b/solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java
index b0ba518..2f73792 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/MockZkStateReader.java
@@ -19,6 +19,7 @@ package org.apache.solr.cloud;
 import java.util.Set;
 
 import org.apache.solr.common.cloud.ClusterState;
+import org.apache.solr.common.cloud.DocCollectionWatcher;
 import org.apache.solr.common.cloud.ZkStateReader;
 
 // does not yet mock zkclient at all
@@ -36,4 +37,10 @@ public class MockZkStateReader extends ZkStateReader {
     return collections;
   }
 
+  @Override
+  public void registerDocCollectionWatcher(String collection, DocCollectionWatcher stateWatcher) {
+    // the doc collection will never be changed by this mock
+    // so we just call onStateChanged once with the existing DocCollection object an return
+    stateWatcher.onStateChanged(clusterState.getCollectionOrNull(collection));
+  }
 }