You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/01/05 12:45:04 UTC

[lucene-solr] branch master updated (2695624 -> 1bb9755)

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

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


    from 2695624  SOLR-15019: Replica placement API needs a way to fetch existing replica metrics.
     new 2cbf261  LUCENE-9570: code reformatting [final].
     new 1bb9755  LUCENE-9570: code reformatting [record rev].

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:
 .git-blame-ignore-revs                             |    1 +
 gradle/generation/javacc.gradle                    |   17 +-
 gradle/validation/spotless.gradle                  |  107 +-
 lucene/CHANGES.txt                                 |    4 +
 .../java/org/apache/lucene/search/HitQueue.java    |    7 +-
 .../org/apache/lucene/store/NIOFSDirectory.java    |    8 +-
 .../search/grouping/AllGroupHeadsCollector.java    |   84 +-
 .../lucene/search/grouping/AllGroupsCollector.java |   23 +-
 .../search/grouping/BlockGroupingCollector.java    |  193 +-
 .../search/grouping/CollectedSearchGroup.java      |   10 +-
 .../search/grouping/DistinctValuesCollector.java   |   27 +-
 .../apache/lucene/search/grouping/DoubleRange.java |   10 +-
 .../lucene/search/grouping/DoubleRangeFactory.java |   20 +-
 .../search/grouping/DoubleRangeGroupSelector.java  |   16 +-
 .../grouping/FirstPassGroupingCollector.java       |  100 +-
 .../apache/lucene/search/grouping/GroupDocs.java   |   40 +-
 .../search/grouping/GroupFacetCollector.java       |   93 +-
 .../lucene/search/grouping/GroupReducer.java       |   35 +-
 .../lucene/search/grouping/GroupSelector.java      |   39 +-
 .../lucene/search/grouping/GroupingSearch.java     |  135 +-
 .../apache/lucene/search/grouping/LongRange.java   |    9 +-
 .../lucene/search/grouping/LongRangeFactory.java   |   20 +-
 .../search/grouping/LongRangeGroupSelector.java    |   16 +-
 .../apache/lucene/search/grouping/SearchGroup.java |  103 +-
 .../grouping/SecondPassGroupingCollector.java      |   28 +-
 .../search/grouping/TermGroupFacetCollector.java   |  113 +-
 .../lucene/search/grouping/TermGroupSelector.java  |   25 +-
 .../apache/lucene/search/grouping/TopGroups.java   |  176 +-
 .../lucene/search/grouping/TopGroupsCollector.java |  106 +-
 .../search/grouping/ValueSourceGroupSelector.java  |   13 +-
 .../lucene/search/grouping/package-info.java       |  187 +-
 .../search/grouping/AbstractGroupingTestCase.java  |   17 +-
 .../search/grouping/BaseGroupSelectorTestCase.java |  128 +-
 .../grouping/TestAllGroupHeadsCollector.java       |  188 +-
 .../search/grouping/TestAllGroupsCollector.java    |   14 +-
 .../lucene/search/grouping/TestBlockGrouping.java  |   60 +-
 .../grouping/TestDistinctValuesCollector.java      |  176 +-
 .../search/grouping/TestDoubleRangeFactory.java    |    2 -
 .../grouping/TestDoubleRangeGroupSelector.java     |    6 +-
 .../search/grouping/TestGroupFacetCollector.java   |  259 +-
 .../lucene/search/grouping/TestGrouping.java       |  798 ++++--
 .../lucene/search/grouping/TestGroupingSearch.java |   38 +-
 .../search/grouping/TestLongRangeFactory.java      |    2 -
 .../grouping/TestLongRangeGroupSelector.java       |    4 +-
 .../search/grouping/TestTermGroupSelector.java     |    2 +-
 .../lucene/search/grouping/TestTopGroups.java      |  153 +-
 .../grouping/TestValueSourceGroupSelector.java     |    1 -
 .../apache/lucene/luke/app/AbstractHandler.java    |    2 -
 .../apache/lucene/luke/app/DirectoryHandler.java   |    5 +-
 .../apache/lucene/luke/app/DirectoryObserver.java  |    1 -
 .../org/apache/lucene/luke/app/IndexHandler.java   |   18 +-
 .../org/apache/lucene/luke/app/IndexObserver.java  |    1 -
 .../java/org/apache/lucene/luke/app/LukeState.java |    5 +-
 .../java/org/apache/lucene/luke/app/Observer.java  |    3 +-
 .../apache/lucene/luke/app/desktop/LukeMain.java   |   38 +-
 .../lucene/luke/app/desktop/MessageBroker.java     |    1 -
 .../lucene/luke/app/desktop/Preferences.java       |    8 +-
 .../luke/app/desktop/PreferencesFactory.java       |    3 +-
 .../lucene/luke/app/desktop/PreferencesImpl.java   |   14 +-
 .../desktop/components/AnalysisPanelProvider.java  |  185 +-
 .../desktop/components/AnalysisTabOperator.java    |    2 -
 .../desktop/components/CommitsPanelProvider.java   |  204 +-
 .../components/ComponentOperatorRegistry.java      |    4 +-
 .../desktop/components/DocumentsPanelProvider.java |  345 ++-
 .../desktop/components/DocumentsTabOperator.java   |    2 +-
 .../app/desktop/components/LogsPanelProvider.java  |    6 +-
 .../app/desktop/components/LukeWindowProvider.java |   33 +-
 .../app/desktop/components/MenuBarProvider.java    |   45 +-
 .../desktop/components/OverviewPanelProvider.java  |  172 +-
 .../desktop/components/SearchPanelProvider.java    |  344 ++-
 .../app/desktop/components/TabSwitcherProxy.java   |    1 -
 .../app/desktop/components/TabbedPaneProvider.java |   10 +-
 .../app/desktop/components/TableColumnInfo.java    |    1 -
 .../app/desktop/components/TableModelBase.java     |    9 +-
 .../components/dialog/ConfirmDialogFactory.java    |   23 +-
 .../components/dialog/HelpDialogFactory.java       |   15 +-
 .../analysis/AnalysisChainDialogFactory.java       |   50 +-
 .../dialog/analysis/EditFiltersDialogFactory.java  |  140 +-
 .../dialog/analysis/EditFiltersMode.java           |    3 +-
 .../dialog/analysis/EditParamsDialogFactory.java   |  106 +-
 .../components/dialog/analysis/EditParamsMode.java |    4 +-
 .../analysis/TokenAttributeDialogFactory.java      |   40 +-
 .../components/dialog/analysis/package-info.java   |    2 +-
 .../dialog/documents/AddDocumentDialogFactory.java |  254 +-
 .../documents/AddDocumentDialogOperator.java       |    1 -
 .../dialog/documents/DocValuesDialogFactory.java   |   64 +-
 .../documents/IndexOptionsDialogFactory.java       |   27 +-
 .../dialog/documents/StoredValueDialogFactory.java |   34 +-
 .../dialog/documents/TermVectorDialogFactory.java  |   65 +-
 .../components/dialog/documents/package-info.java  |    2 +-
 .../dialog/menubar/AboutDialogFactory.java         |  104 +-
 .../dialog/menubar/CheckIndexDialogFactory.java    |  187 +-
 .../dialog/menubar/CreateIndexDialogFactory.java   |  160 +-
 .../dialog/menubar/ExportTermsDialogFactory.java   |  135 +-
 .../dialog/menubar/OpenIndexDialogFactory.java     |   76 +-
 .../dialog/menubar/OptimizeIndexDialogFactory.java |  101 +-
 .../components/dialog/menubar/package-info.java    |    2 +-
 .../desktop/components/dialog/package-info.java    |    2 +-
 .../dialog/search/ExplainDialogFactory.java        |   38 +-
 .../components/dialog/search/package-info.java     |    2 +-
 .../analysis/CustomAnalyzerPanelOperator.java      |    1 -
 .../analysis/CustomAnalyzerPanelProvider.java      |  267 +-
 .../analysis/PresetAnalyzerPanelOperator.java      |    1 -
 .../analysis/PresetAnalyzerPanelProvider.java      |   20 +-
 .../analysis/SimpleAnalyzeResultPanelOperator.java |    4 +-
 .../analysis/SimpleAnalyzeResultPanelProvider.java |   55 +-
 .../StepByStepAnalyzeResultPanelOperator.java      |    3 +-
 .../StepByStepAnalyzeResultPanelProvider.java      |   99 +-
 .../fragments/analysis/package-info.java           |    2 +-
 .../desktop/components/fragments/package-info.java |    2 +-
 .../fragments/search/AnalyzerPaneProvider.java     |   43 +-
 .../fragments/search/AnalyzerTabOperator.java      |    1 -
 .../fragments/search/FieldValuesPaneProvider.java  |   37 +-
 .../fragments/search/FieldValuesTabOperator.java   |    1 -
 .../fragments/search/MLTPaneProvider.java          |   59 +-
 .../fragments/search/MLTTabOperator.java           |    1 -
 .../fragments/search/QueryParserPaneProvider.java  |  109 +-
 .../fragments/search/QueryParserTabOperator.java   |    2 -
 .../fragments/search/SimilarityPaneProvider.java   |   18 +-
 .../fragments/search/SortPaneProvider.java         |   75 +-
 .../fragments/search/SortTabOperator.java          |    2 -
 .../components/fragments/search/package-info.java  |    2 +-
 .../luke/app/desktop/components/package-info.java  |    2 +-
 .../luke/app/desktop/dto/documents/NewField.java   |    5 +-
 .../app/desktop/dto/documents/package-info.java    |    2 +-
 .../lucene/luke/app/desktop/package-info.java      |    2 +-
 .../lucene/luke/app/desktop/util/DialogOpener.java |   17 +-
 .../luke/app/desktop/util/ExceptionHandler.java    |    2 -
 .../lucene/luke/app/desktop/util/FontUtils.java    |   13 +-
 .../luke/app/desktop/util/HelpHeaderRenderer.java  |   67 +-
 .../lucene/luke/app/desktop/util/ImageUtils.java   |    9 +-
 .../lucene/luke/app/desktop/util/ListUtils.java    |    8 +-
 .../lucene/luke/app/desktop/util/MessageUtils.java |   41 +-
 .../lucene/luke/app/desktop/util/NumericUtils.java |   31 +-
 .../lucene/luke/app/desktop/util/StringUtils.java  |    3 +-
 .../luke/app/desktop/util/StyleConstants.java      |    4 +-
 .../lucene/luke/app/desktop/util/TabUtils.java     |   12 +-
 .../lucene/luke/app/desktop/util/TableUtils.java   |   27 +-
 .../luke/app/desktop/util/TextAreaAppender.java    |   28 +-
 .../luke/app/desktop/util/TextAreaPrintStream.java |    2 +-
 .../lucene/luke/app/desktop/util/URLLabel.java     |   16 +-
 .../luke/app/desktop/util/inifile/IniFile.java     |    1 -
 .../app/desktop/util/inifile/IniFileReader.java    |    1 -
 .../app/desktop/util/inifile/IniFileWriter.java    |    1 -
 .../luke/app/desktop/util/inifile/OptionMap.java   |    1 -
 .../app/desktop/util/inifile/SimpleIniFile.java    |    4 +-
 .../desktop/util/inifile/SimpleIniFileReader.java  |   39 +-
 .../app/desktop/util/inifile/package-info.java     |    2 +-
 .../luke/app/desktop/util/lang/package-info.java   |    2 +-
 .../lucene/luke/app/desktop/util/package-info.java |    2 +-
 .../org/apache/lucene/luke/app/package-info.java   |    2 +-
 .../apache/lucene/luke/models/LukeException.java   |    1 -
 .../org/apache/lucene/luke/models/LukeModel.java   |    7 +-
 .../lucene/luke/models/analysis/Analysis.java      |   70 +-
 .../luke/models/analysis/AnalysisFactory.java      |    1 -
 .../lucene/luke/models/analysis/AnalysisImpl.java  |   84 +-
 .../luke/models/analysis/CustomAnalyzerConfig.java |   20 +-
 .../lucene/luke/models/analysis/package-info.java  |    2 +-
 .../apache/lucene/luke/models/commits/Commit.java  |    8 +-
 .../apache/lucene/luke/models/commits/Commits.java |   12 +-
 .../lucene/luke/models/commits/CommitsFactory.java |    1 -
 .../lucene/luke/models/commits/CommitsImpl.java    |   39 +-
 .../apache/lucene/luke/models/commits/File.java    |    7 +-
 .../apache/lucene/luke/models/commits/Segment.java |    8 +-
 .../lucene/luke/models/commits/package-info.java   |    2 +-
 .../lucene/luke/models/documents/DocValues.java    |   35 +-
 .../luke/models/documents/DocValuesAdapter.java    |   58 +-
 .../luke/models/documents/DocumentField.java       |   38 +-
 .../lucene/luke/models/documents/Documents.java    |   58 +-
 .../luke/models/documents/DocumentsFactory.java    |    1 -
 .../luke/models/documents/DocumentsImpl.java       |   48 +-
 .../lucene/luke/models/documents/TermPosting.java  |   24 +-
 .../luke/models/documents/TermVectorEntry.java     |   70 +-
 .../luke/models/documents/TermVectorsAdapter.java  |   10 +-
 .../lucene/luke/models/documents/package-info.java |    2 +-
 .../lucene/luke/models/overview/Overview.java      |   57 +-
 .../luke/models/overview/OverviewFactory.java      |    1 -
 .../lucene/luke/models/overview/OverviewImpl.java  |   18 +-
 .../lucene/luke/models/overview/TermCounts.java    |   17 +-
 .../luke/models/overview/TermCountsOrder.java      |   20 +-
 .../lucene/luke/models/overview/TermStats.java     |   34 +-
 .../lucene/luke/models/overview/TopTerms.java      |   13 +-
 .../lucene/luke/models/overview/package-info.java  |    2 +-
 .../apache/lucene/luke/models/package-info.java    |    2 +-
 .../lucene/luke/models/search/MLTConfig.java       |    6 +-
 .../luke/models/search/QueryParserConfig.java      |   63 +-
 .../apache/lucene/luke/models/search/Search.java   |   47 +-
 .../lucene/luke/models/search/SearchFactory.java   |    1 -
 .../lucene/luke/models/search/SearchImpl.java      |  114 +-
 .../lucene/luke/models/search/SearchResults.java   |   58 +-
 .../luke/models/search/SimilarityConfig.java       |   26 +-
 .../lucene/luke/models/search/package-info.java    |    2 +-
 .../lucene/luke/models/tools/IndexTools.java       |   15 +-
 .../luke/models/tools/IndexToolsFactory.java       |    1 -
 .../lucene/luke/models/tools/IndexToolsImpl.java   |   23 +-
 .../lucene/luke/models/tools/package-info.java     |    2 +-
 .../apache/lucene/luke/models/util/IndexUtils.java |   93 +-
 .../lucene/luke/models/util/package-info.java      |    2 +-
 .../luke/models/util/twentynewsgroups/Message.java |    8 +-
 .../util/twentynewsgroups/MessageFilesParser.java  |   12 +-
 .../models/util/twentynewsgroups/package-info.java |    2 +-
 .../java/org/apache/lucene/luke/package-info.java  |    2 +-
 .../org/apache/lucene/luke/util/BytesRefUtils.java |    7 +-
 .../org/apache/lucene/luke/util/LoggerFactory.java |   37 +-
 .../org/apache/lucene/luke/util/package-info.java  |    2 +-
 .../lucene/luke/util/reflection/ClassScanner.java  |   10 +-
 .../luke/util/reflection/SubtypeCollector.java     |    8 +-
 .../lucene/luke/util/reflection/package-info.java  |    2 +-
 .../desktop/util/inifile/SimpleIniFileTest.java    |    1 -
 .../luke/models/analysis/AnalysisImplTest.java     |   60 +-
 .../luke/models/commits/CommitsImplTest.java       |   10 +-
 .../models/documents/DocValuesAdapterTest.java     |   16 +-
 .../luke/models/documents/DocumentsImplTest.java   |    7 +-
 .../luke/models/documents/DocumentsTestBase.java   |   34 +-
 .../models/documents/TermVectorsAdapterTest.java   |    4 +-
 .../luke/models/overview/OverviewImplTest.java     |    8 +-
 .../luke/models/overview/OverviewTestBase.java     |    4 +-
 .../luke/models/overview/TermCountsTest.java       |    4 +-
 .../lucene/luke/models/overview/TopTermsTest.java  |    2 -
 .../lucene/luke/models/search/SearchImplTest.java  |  111 +-
 .../apache/lucene/misc/CollectorMemoryTracker.java |    5 +-
 .../java/org/apache/lucene/misc/GetTermInfo.java   |   38 +-
 .../java/org/apache/lucene/misc/HighFreqTerms.java |   88 +-
 .../org/apache/lucene/misc/IndexMergeTool.java     |   42 +-
 .../apache/lucene/misc/SweetSpotSimilarity.java    |  165 +-
 .../src/java/org/apache/lucene/misc/TermStats.java |   18 +-
 .../apache/lucene/misc/document/LazyDocument.java  |   63 +-
 .../apache/lucene/misc/document/package-info.java  |    2 +-
 .../apache/lucene/misc/index/IndexSplitter.java    |   65 +-
 .../lucene/misc/index/MultiPassIndexSplitter.java  |   71 +-
 .../apache/lucene/misc/index/PKIndexSplitter.java  |   82 +-
 .../org/apache/lucene/misc/index/package-info.java |    2 +-
 .../java/org/apache/lucene/misc/package-info.java  |    4 +-
 .../misc/search/DiversifiedTopDocsCollector.java   |   81 +-
 .../apache/lucene/misc/search/DocValuesStats.java  |   43 +-
 .../misc/search/DocValuesStatsCollector.java       |   15 +-
 .../search/MemoryAccountingBitsetCollector.java    |    1 -
 .../apache/lucene/misc/search/package-info.java    |    2 +-
 .../search/similarity/LegacyBM25Similarity.java    |   31 +-
 .../misc/search/similarity/package-info.java       |    2 +-
 .../misc/store/HardlinkCopyDirectoryWrapper.java   |   78 +-
 .../apache/lucene/misc/store/NativePosixUtil.java  |   33 +-
 .../lucene/misc/store/NativeUnixDirectory.java     |  180 +-
 .../org/apache/lucene/misc/store/RAFDirectory.java |   95 +-
 .../apache/lucene/misc/store/WindowsDirectory.java |   66 +-
 .../org/apache/lucene/misc/store/package-info.java |    2 +-
 .../org/apache/lucene/misc/util/MemoryTracker.java |    5 +-
 .../apache/lucene/misc/util/fst/ListOfOutputs.java |   66 +-
 .../misc/util/fst/UpToTwoPositiveIntOutputs.java   |   48 +-
 .../apache/lucene/misc/util/fst/package-info.java  |    2 +-
 .../org/apache/lucene/misc/util/package-info.java  |    5 +-
 .../lucene/misc/SweetSpotSimilarityTest.java       |  199 +-
 .../org/apache/lucene/misc/TestHighFreqTerms.java  |  183 +-
 .../org/apache/lucene/misc/TestIndexMergeTool.java |   40 +-
 .../lucene/misc/document/TestLazyDocument.java     |   80 +-
 .../lucene/misc/index/TestIndexSplitter.java       |   31 +-
 .../misc/index/TestMultiPassIndexSplitter.java     |   44 +-
 .../lucene/misc/index/TestPKIndexSplitter.java     |   67 +-
 .../search/TestDiversifiedTopDocsCollector.java    |  298 +--
 .../misc/search/TestDocValuesStatsCollector.java   |   47 +-
 .../TestMemoryAccountingBitsetCollector.java       |   14 +-
 .../similarity/TestLegacyBM25Similarity.java       |   64 +-
 .../lucene/misc/store/NativeLibEnableRule.java     |    9 +-
 .../lucene/misc/store/NativeUnixDirectoryTest.java |   20 +-
 .../store/TestHardLinkCopyDirectoryWrapper.java    |   30 +-
 .../apache/lucene/misc/store/TestRAFDirectory.java |   12 +-
 .../lucene/misc/store/WindowsDirectoryTest.java    |   11 +-
 .../misc/util/TestCollectorMemoryTracker.java      |   22 +-
 .../apache/lucene/misc/util/fst/TestFSTsMisc.java  |   31 +-
 .../apache/lucene/monitor/CandidateMatcher.java    |   60 +-
 .../apache/lucene/monitor/CollectingMatcher.java   |    9 +-
 .../lucene/monitor/ConcurrentQueryLoader.java      |   59 +-
 .../apache/lucene/monitor/CustomQueryHandler.java  |   15 +-
 .../org/apache/lucene/monitor/DocumentBatch.java   |   11 +-
 .../org/apache/lucene/monitor/ExplainingMatch.java |   54 +-
 .../lucene/monitor/ForceNoBulkScoringQuery.java    |   12 +-
 .../org/apache/lucene/monitor/HighlightsMatch.java |  144 +-
 .../org/apache/lucene/monitor/MatcherFactory.java  |    5 +-
 .../org/apache/lucene/monitor/MatchingQueries.java |   33 +-
 .../java/org/apache/lucene/monitor/Monitor.java    |  159 +-
 .../lucene/monitor/MonitorConfiguration.java       |   30 +-
 .../org/apache/lucene/monitor/MonitorQuery.java    |   44 +-
 .../lucene/monitor/MonitorQuerySerializer.java     |   22 +-
 .../lucene/monitor/MonitorUpdateListener.java      |   40 +-
 .../lucene/monitor/MultiMatchingQueries.java       |   37 +-
 .../monitor/MultipassTermFilteredPresearcher.java  |   77 +-
 .../org/apache/lucene/monitor/ParallelMatcher.java |   64 +-
 .../apache/lucene/monitor/PartitionMatcher.java    |   58 +-
 .../org/apache/lucene/monitor/Presearcher.java     |   41 +-
 .../apache/lucene/monitor/PresearcherMatch.java    |   12 +-
 .../apache/lucene/monitor/PresearcherMatches.java  |   12 +-
 .../org/apache/lucene/monitor/QueryAnalyzer.java   |   41 +-
 .../org/apache/lucene/monitor/QueryCacheEntry.java |   21 +-
 .../org/apache/lucene/monitor/QueryDecomposer.java |   24 +-
 .../java/org/apache/lucene/monitor/QueryIndex.java |   86 +-
 .../java/org/apache/lucene/monitor/QueryMatch.java |   30 +-
 .../apache/lucene/monitor/QueryTimeListener.java   |   20 +-
 .../java/org/apache/lucene/monitor/QueryTree.java  |   77 +-
 .../apache/lucene/monitor/RegexpQueryHandler.java  |   44 +-
 .../org/apache/lucene/monitor/ScoringMatch.java    |   15 +-
 .../java/org/apache/lucene/monitor/SlowLog.java    |   22 +-
 .../lucene/monitor/SuffixingNGramTokenFilter.java  |   29 +-
 .../lucene/monitor/TermFilteredPresearcher.java    |  126 +-
 .../org/apache/lucene/monitor/TermWeightor.java    |   48 +-
 .../lucene/monitor/TermsEnumTokenStream.java       |    8 +-
 .../org/apache/lucene/monitor/package-info.java    |  135 +-
 .../lucene/monitor/ConcurrentMatcherTestBase.java  |   23 +-
 .../FieldFilterPresearcherComponentTestBase.java   |   22 +-
 .../org/apache/lucene/monitor/MonitorTestBase.java |    1 -
 .../apache/lucene/monitor/PresearcherTestBase.java |   51 +-
 .../monitor/TestBooleanClauseWeightings.java       |   36 +-
 .../lucene/monitor/TestBooleanTermExtractor.java   |   16 +-
 .../apache/lucene/monitor/TestCachePurging.java    |   76 +-
 .../lucene/monitor/TestConcurrentQueryLoader.java  |    1 -
 .../apache/lucene/monitor/TestDocumentBatch.java   |   17 +-
 .../lucene/monitor/TestExplainingMatcher.java      |    4 +-
 .../org/apache/lucene/monitor/TestExtractors.java  |   26 +-
 .../TestFieldFilteredMultipassPresearcher.java     |    4 +-
 .../monitor/TestFieldTermFilteredPresearcher.java  |    3 +-
 .../monitor/TestForceNoBulkScoringQuery.java       |   11 +-
 .../lucene/monitor/TestHighlightingMatcher.java    |  319 +--
 .../lucene/monitor/TestMatchAllPresearcher.java    |    1 -
 .../org/apache/lucene/monitor/TestMonitor.java     |  105 +-
 .../lucene/monitor/TestMonitorErrorHandling.java   |   15 +-
 .../lucene/monitor/TestMonitorPersistence.java     |   29 +-
 .../lucene/monitor/TestMultipassPresearcher.java   |   67 +-
 .../apache/lucene/monitor/TestParallelMatcher.java |    3 +-
 .../lucene/monitor/TestPartitionMatcher.java       |    4 +-
 .../monitor/TestPresearcherMatchCollector.java     |    6 +-
 .../apache/lucene/monitor/TestQueryAnalyzer.java   |   74 +-
 .../apache/lucene/monitor/TestQueryDecomposer.java |   44 +-
 .../lucene/monitor/TestQueryTermComparators.java   |   17 +-
 .../apache/lucene/monitor/TestQueryTermFilter.java |   12 +-
 .../lucene/monitor/TestRegexpQueryHandler.java     |   68 +-
 .../apache/lucene/monitor/TestSimilarities.java    |   19 +-
 .../apache/lucene/monitor/TestSimpleMatcher.java   |    4 +-
 .../apache/lucene/monitor/TestSpanExtractors.java  |   66 +-
 .../monitor/TestSuffixingNGramTokenizer.java       |   61 +-
 .../apache/lucene/monitor/TestTermPresearcher.java |   62 +-
 .../lucene/monitor/TestTermsEnumTokenFilter.java   |   23 +-
 .../monitor/TestWildcardTermPresearcher.java       |   36 +-
 .../lucene/queryparser/charstream/CharStream.java  |   77 +-
 .../queryparser/charstream/FastCharStream.java     |   43 +-
 .../queryparser/charstream/package-info.java       |    4 +-
 .../queryparser/classic/MultiFieldQueryParser.java |  193 +-
 .../queryparser/classic/QueryParserBase.java       |  542 ++--
 .../lucene/queryparser/classic/package-info.java   |  481 ++--
 .../complexPhrase/ComplexPhraseQueryParser.java    |  157 +-
 .../queryparser/complexPhrase/package-info.java    |    7 +-
 .../queryparser/ext/ExtendableQueryParser.java     |  102 +-
 .../lucene/queryparser/ext/ExtensionQuery.java     |   23 +-
 .../apache/lucene/queryparser/ext/Extensions.java  |  184 +-
 .../lucene/queryparser/ext/ParserExtension.java    |   35 +-
 .../lucene/queryparser/ext/package-info.java       |    8 +-
 .../queryparser/flexible/core/QueryNodeError.java  |   23 +-
 .../flexible/core/QueryNodeException.java          |   20 +-
 .../flexible/core/QueryNodeParseException.java     |   46 +-
 .../flexible/core/QueryParserHelper.java           |  163 +-
 .../flexible/core/builders/QueryBuilder.java       |   12 +-
 .../flexible/core/builders/QueryTreeBuilder.java   |   99 +-
 .../flexible/core/builders/package-info.java       |   16 +-
 .../flexible/core/config/AbstractQueryConfig.java  |   58 +-
 .../flexible/core/config/ConfigurationKey.java     |   17 +-
 .../flexible/core/config/FieldConfig.java          |   19 +-
 .../flexible/core/config/FieldConfigListener.java  |   14 +-
 .../flexible/core/config/QueryConfigHandler.java   |   54 +-
 .../flexible/core/config/package-info.java         |   28 +-
 .../core/messages/QueryParserMessages.java         |    5 +-
 .../flexible/core/messages/package-info.java       |    9 +-
 .../flexible/core/nodes/AndQueryNode.java          |   31 +-
 .../flexible/core/nodes/AnyQueryNode.java          |   49 +-
 .../flexible/core/nodes/BooleanQueryNode.java      |   28 +-
 .../flexible/core/nodes/BoostQueryNode.java        |   48 +-
 .../flexible/core/nodes/DeletedQueryNode.java      |    8 +-
 .../flexible/core/nodes/FieldQueryNode.java        |   89 +-
 .../core/nodes/FieldValuePairQueryNode.java        |   12 +-
 .../flexible/core/nodes/FieldableNode.java         |   19 +-
 .../flexible/core/nodes/FuzzyQueryNode.java        |   43 +-
 .../flexible/core/nodes/GroupQueryNode.java        |   24 +-
 .../flexible/core/nodes/MatchAllDocsQueryNode.java |    4 +-
 .../flexible/core/nodes/MatchNoDocsQueryNode.java  |    6 +-
 .../flexible/core/nodes/ModifierQueryNode.java     |   92 +-
 .../flexible/core/nodes/NoTokenFoundQueryNode.java |    4 +-
 .../flexible/core/nodes/OpaqueQueryNode.java       |   22 +-
 .../flexible/core/nodes/OrQueryNode.java           |   30 +-
 .../flexible/core/nodes/PathQueryNode.java         |   87 +-
 .../flexible/core/nodes/PhraseSlopQueryNode.java   |   40 +-
 .../flexible/core/nodes/ProximityQueryNode.java    |  140 +-
 .../queryparser/flexible/core/nodes/QueryNode.java |   47 +-
 .../flexible/core/nodes/QueryNodeImpl.java         |   68 +-
 .../flexible/core/nodes/QuotedFieldQueryNode.java  |   32 +-
 .../flexible/core/nodes/RangeQueryNode.java        |   15 +-
 .../flexible/core/nodes/SlopQueryNode.java         |   46 +-
 .../flexible/core/nodes/TextableQueryNode.java     |    5 +-
 .../core/nodes/TokenizedPhraseQueryNode.java       |   18 +-
 .../flexible/core/nodes/ValueQueryNode.java        |   10 +-
 .../flexible/core/nodes/package-info.java          |  108 +-
 .../queryparser/flexible/core/package-info.java    |   54 +-
 .../flexible/core/parser/EscapeQuerySyntax.java    |   20 +-
 .../flexible/core/parser/SyntaxParser.java         |   13 +-
 .../flexible/core/parser/package-info.java         |   29 +-
 .../NoChildOptimizationQueryNodeProcessor.java     |   31 +-
 .../core/processors/QueryNodeProcessor.java        |   52 +-
 .../core/processors/QueryNodeProcessorImpl.java    |  119 +-
 .../processors/QueryNodeProcessorPipeline.java     |  160 +-
 .../RemoveDeletedQueryNodesProcessor.java          |   27 +-
 .../flexible/core/processors/package-info.java     |   48 +-
 .../flexible/core/util/QueryNodeOperation.java     |   86 +-
 .../flexible/core/util/StringUtils.java            |   12 +-
 .../flexible/core/util/UnescapedCharSequence.java  |   45 +-
 .../flexible/core/util/package-info.java           |   10 +-
 .../queryparser/flexible/messages/Message.java     |    5 +-
 .../queryparser/flexible/messages/MessageImpl.java |    6 +-
 .../lucene/queryparser/flexible/messages/NLS.java  |   69 +-
 .../flexible/messages/NLSException.java            |   14 +-
 .../flexible/messages/package-info.java            |   73 +-
 .../flexible/precedence/PrecedenceQueryParser.java |   36 +-
 .../flexible/precedence/package-info.java          |   22 +-
 .../BooleanModifiersQueryNodeProcessor.java        |   45 +-
 .../PrecedenceQueryNodeProcessorPipeline.java      |   32 +-
 .../precedence/processors/package-info.java        |   38 +-
 .../standard/CommonQueryParserConfiguration.java   |  133 +-
 .../flexible/standard/QueryParserUtil.java         |  119 +-
 .../flexible/standard/StandardQueryParser.java     |  347 ++-
 .../standard/builders/AnyQueryNodeBuilder.java     |   22 +-
 .../standard/builders/BooleanQueryNodeBuilder.java |   48 +-
 .../standard/builders/BoostQueryNodeBuilder.java   |   12 +-
 .../standard/builders/DummyQueryNodeBuilder.java   |   15 +-
 .../standard/builders/FieldQueryNodeBuilder.java   |    9 +-
 .../standard/builders/FuzzyQueryNodeBuilder.java   |   19 +-
 .../standard/builders/GroupQueryNodeBuilder.java   |   10 +-
 .../builders/MatchAllDocsQueryNodeBuilder.java     |   18 +-
 .../builders/MatchNoDocsQueryNodeBuilder.java      |   16 +-
 .../builders/ModifierQueryNodeBuilder.java         |   10 +-
 .../builders/MultiPhraseQueryNodeBuilder.java      |   18 +-
 .../standard/builders/PhraseQueryNodeBuilder.java  |   12 +-
 .../builders/PointRangeQueryNodeBuilder.java       |   29 +-
 .../builders/PrefixWildcardQueryNodeBuilder.java   |   18 +-
 .../standard/builders/RegexpQueryNodeBuilder.java  |   13 +-
 .../standard/builders/SlopQueryNodeBuilder.java    |   19 +-
 .../standard/builders/StandardQueryBuilder.java    |    7 +-
 .../builders/StandardQueryTreeBuilder.java         |   24 +-
 .../builders/TermRangeQueryNodeBuilder.java        |   38 +-
 .../builders/WildcardQueryNodeBuilder.java         |   18 +-
 .../flexible/standard/builders/package-info.java   |   23 +-
 .../standard/config/FieldBoostMapFCListener.java   |   18 +-
 .../config/FieldDateResolutionFCListener.java      |   20 +-
 .../flexible/standard/config/FuzzyConfig.java      |    9 +-
 .../flexible/standard/config/NumberDateFormat.java |   34 +-
 .../flexible/standard/config/PointsConfig.java     |   67 +-
 .../standard/config/PointsConfigListener.java      |   28 +-
 .../config/StandardQueryConfigHandler.java         |  149 +-
 .../flexible/standard/config/package-info.java     |   20 +-
 .../standard/nodes/AbstractRangeQueryNode.java     |  115 +-
 .../standard/nodes/BooleanModifierNode.java        |    9 +-
 .../standard/nodes/MultiPhraseQueryNode.java       |   20 +-
 .../flexible/standard/nodes/PointQueryNode.java    |   78 +-
 .../standard/nodes/PointRangeQueryNode.java        |   98 +-
 .../standard/nodes/PrefixWildcardQueryNode.java    |   25 +-
 .../flexible/standard/nodes/RegexpQueryNode.java   |   32 +-
 .../flexible/standard/nodes/SynonymQueryNode.java  |    1 -
 .../standard/nodes/TermRangeQueryNode.java         |   25 +-
 .../flexible/standard/nodes/WildcardQueryNode.java |   20 +-
 .../flexible/standard/nodes/package-info.java      |   13 +-
 .../flexible/standard/package-info.java            |   31 +-
 .../standard/parser/EscapeQuerySyntaxImpl.java     |  131 +-
 .../flexible/standard/parser/package-info.java     |   17 +-
 .../processors/AllowLeadingWildcardProcessor.java  |   42 +-
 .../processors/AnalyzerQueryNodeProcessor.java     |  153 +-
 .../BooleanQuery2ModifierNodeProcessor.java        |  112 +-
 ...nSingleChildOptimizationQueryNodeProcessor.java |   25 +-
 .../processors/BoostQueryNodeProcessor.java        |   25 +-
 .../DefaultPhraseSlopQueryNodeProcessor.java       |   34 +-
 .../processors/FuzzyQueryNodeProcessor.java        |   28 +-
 .../processors/MatchAllDocsQueryNodeProcessor.java |   19 +-
 .../processors/MultiFieldQueryNodeProcessor.java   |   26 +-
 .../MultiTermRewriteMethodProcessor.java           |   17 +-
 .../processors/OpenRangeQueryNodeProcessor.java    |   42 +-
 .../processors/PhraseSlopQueryNodeProcessor.java   |   17 +-
 .../processors/PointQueryNodeProcessor.java        |   92 +-
 .../processors/PointRangeQueryNodeProcessor.java   |   56 +-
 .../processors/RegexpQueryNodeProcessor.java       |    5 +-
 .../RemoveEmptyNonLeafQueryNodeProcessor.java      |   28 +-
 .../StandardQueryNodeProcessorPipeline.java        |   25 +-
 .../processors/TermRangeQueryNodeProcessor.java    |   85 +-
 .../processors/WildcardQueryNodeProcessor.java     |   85 +-
 .../flexible/standard/processors/package-info.java |   18 +-
 .../queryparser/simple/SimpleQueryParser.java      |  200 +-
 .../lucene/queryparser/simple/package-info.java    |    6 +-
 .../queryparser/surround/parser/package-info.java  |    9 +-
 .../queryparser/surround/query/AndQuery.java       |   18 +-
 .../surround/query/BasicQueryFactory.java          |   46 +-
 .../queryparser/surround/query/ComposedQuery.java  |   68 +-
 .../queryparser/surround/query/DistanceQuery.java  |   59 +-
 .../surround/query/DistanceRewriteQuery.java       |    7 +-
 .../surround/query/DistanceSubQuery.java           |   18 +-
 .../queryparser/surround/query/FieldsQuery.java    |   51 +-
 .../queryparser/surround/query/NotQuery.java       |   30 +-
 .../lucene/queryparser/surround/query/OrQuery.java |   27 +-
 .../queryparser/surround/query/RewriteQuery.java   |   37 +-
 .../queryparser/surround/query/SimpleTerm.java     |   87 +-
 .../surround/query/SimpleTermRewriteQuery.java     |   35 +-
 .../surround/query/SpanNearClauseFactory.java      |   97 +-
 .../surround/query/SrndBooleanQuery.java           |   18 +-
 .../surround/query/SrndPrefixQuery.java            |   51 +-
 .../queryparser/surround/query/SrndQuery.java      |   75 +-
 .../queryparser/surround/query/SrndTermQuery.java  |   34 +-
 .../queryparser/surround/query/SrndTruncQuery.java |   59 +-
 .../surround/query/TooManyBasicQueries.java        |   12 +-
 .../queryparser/surround/query/package-info.java   |   21 +-
 .../apache/lucene/queryparser/xml/CoreParser.java  |   58 +-
 .../queryparser/xml/CorePlusExtensionsParser.java  |   10 +-
 .../queryparser/xml/CorePlusQueriesParser.java     |    9 +-
 .../apache/lucene/queryparser/xml/DOMUtils.java    |   74 +-
 .../lucene/queryparser/xml/ParserException.java    |    5 +-
 .../lucene/queryparser/xml/QueryBuilder.java       |    4 +-
 .../queryparser/xml/QueryBuilderFactory.java       |    8 +-
 .../xml/builders/BooleanQueryBuilder.java          |   15 +-
 .../xml/builders/BoostingTermBuilder.java          |   14 +-
 .../xml/builders/ConstantScoreQueryBuilder.java    |    6 +-
 .../xml/builders/DisjunctionMaxQueryBuilder.java   |   12 +-
 .../xml/builders/FuzzyLikeThisQueryBuilder.java    |    8 +-
 .../xml/builders/LikeThisQueryBuilder.java         |   41 +-
 .../xml/builders/MatchAllDocsQueryBuilder.java     |   11 +-
 .../xml/builders/PointRangeQueryBuilder.java       |   22 +-
 .../xml/builders/RangeQueryBuilder.java            |    8 +-
 .../queryparser/xml/builders/SpanBuilderBase.java  |   10 +-
 .../queryparser/xml/builders/SpanFirstBuilder.java |   10 +-
 .../queryparser/xml/builders/SpanNearBuilder.java  |   13 +-
 .../queryparser/xml/builders/SpanNotBuilder.java   |   10 +-
 .../queryparser/xml/builders/SpanOrBuilder.java    |   13 +-
 .../xml/builders/SpanOrTermsBuilder.java           |   22 +-
 .../xml/builders/SpanPositionRangeBuilder.java     |    5 +-
 .../queryparser/xml/builders/SpanQueryBuilder.java |    7 +-
 .../xml/builders/SpanQueryBuilderFactory.java      |   11 +-
 .../queryparser/xml/builders/SpanTermBuilder.java  |   10 +-
 .../queryparser/xml/builders/TermQueryBuilder.java |   12 +-
 .../xml/builders/TermsQueryBuilder.java            |   13 +-
 .../xml/builders/UserInputQueryBuilder.java        |   20 +-
 .../queryparser/xml/builders/package-info.java     |    7 +-
 .../lucene/queryparser/xml/package-info.java       |    7 +-
 .../queryparser/classic/TestMultiAnalyzer.java     |  138 +-
 .../classic/TestMultiFieldQueryParser.java         |  188 +-
 .../classic/TestMultiPhraseQueryParsing.java       |   41 +-
 .../queryparser/classic/TestQueryParser.java       |  535 ++--
 .../complexPhrase/TestComplexPhraseQuery.java      |   84 +-
 .../lucene/queryparser/ext/ExtensionStub.java      |    4 +-
 .../queryparser/ext/TestExtendableQueryParser.java |   64 +-
 .../lucene/queryparser/ext/TestExtensions.java     |   21 +-
 .../core/builders/TestQueryTreeBuilder.java        |   24 +-
 .../flexible/core/nodes/TestQueryNode.java         |   17 +-
 .../queryparser/flexible/messages/TestNLS.java     |   68 +-
 .../precedence/TestPrecedenceQueryParser.java      |  180 +-
 .../flexible/spans/SpanOrQueryNodeBuilder.java     |    7 +-
 .../flexible/spans/SpanTermQueryNodeBuilder.java   |   11 +-
 .../flexible/spans/SpansQueryConfigHandler.java    |    9 +-
 .../flexible/spans/SpansQueryTreeBuilder.java      |   10 +-
 .../spans/SpansValidatorQueryNodeProcessor.java    |   29 +-
 .../flexible/spans/TestSpanQueryParser.java        |  152 +-
 .../spans/TestSpanQueryParserSimpleSample.java     |   67 +-
 .../flexible/spans/UniqueFieldAttribute.java       |    7 +-
 .../flexible/spans/UniqueFieldAttributeImpl.java   |   17 +-
 .../spans/UniqueFieldQueryNodeProcessor.java       |   20 +-
 .../standard/TestMultiAnalyzerQPHelper.java        |   96 +-
 .../flexible/standard/TestMultiFieldQPHelper.java  |  168 +-
 .../flexible/standard/TestPointQueryParser.java    |   71 +-
 .../flexible/standard/TestQPHelper.java            |  458 ++--
 .../flexible/standard/TestStandardQP.java          |  109 +-
 .../queryparser/simple/TestSimpleQueryParser.java  |   70 +-
 .../surround/query/BooleanQueryTst.java            |   27 +-
 .../surround/query/ExceptionQueryTst.java          |   17 +-
 .../surround/query/SingleFieldTestDb.java          |   27 +-
 .../queryparser/surround/query/SrndQueryTest.java  |   11 +-
 .../surround/query/Test01Exceptions.java           |    4 -
 .../queryparser/surround/query/Test02Boolean.java  |  101 +-
 .../queryparser/surround/query/Test03Distance.java |  203 +-
 .../queryparser/util/QueryParserTestBase.java      |  759 +++---
 .../queryparser/xml/CoreParserTestIndexData.java   |   20 +-
 .../lucene/queryparser/xml/TestCoreParser.java     |   75 +-
 .../xml/TestCorePlusExtensionsParser.java          |    3 +-
 .../queryparser/xml/TestCorePlusQueriesParser.java |    1 -
 .../IndexAndTaxonomyReplicationHandler.java        |  104 +-
 .../replicator/IndexAndTaxonomyRevision.java       |  120 +-
 .../lucene/replicator/IndexInputInputStream.java   |   26 +-
 .../lucene/replicator/IndexReplicationHandler.java |  166 +-
 .../apache/lucene/replicator/IndexRevision.java    |   69 +-
 .../apache/lucene/replicator/LocalReplicator.java  |  117 +-
 .../replicator/PerSessionDirectoryFactory.java     |   17 +-
 .../lucene/replicator/ReplicationClient.java       |  213 +-
 .../org/apache/lucene/replicator/Replicator.java   |   75 +-
 .../org/apache/lucene/replicator/Revision.java     |   55 +-
 .../org/apache/lucene/replicator/RevisionFile.java |   20 +-
 .../lucene/replicator/SessionExpiredException.java |   25 +-
 .../org/apache/lucene/replicator/SessionToken.java |   40 +-
 .../lucene/replicator/http/HttpClientBase.java     |  140 +-
 .../lucene/replicator/http/HttpReplicator.java     |   97 +-
 .../lucene/replicator/http/ReplicationService.java |   96 +-
 .../lucene/replicator/http/package-info.java       |    8 +-
 .../org/apache/lucene/replicator/nrt/CopyJob.java  |   99 +-
 .../apache/lucene/replicator/nrt/CopyOneFile.java  |   53 +-
 .../apache/lucene/replicator/nrt/CopyState.java    |   21 +-
 .../apache/lucene/replicator/nrt/FileMetaData.java |   12 +-
 .../org/apache/lucene/replicator/nrt/Node.java     |  130 +-
 .../replicator/nrt/NodeCommunicationException.java |    4 +-
 .../replicator/nrt/PreCopyMergedSegmentWarmer.java |   25 +-
 .../apache/lucene/replicator/nrt/PrimaryNode.java  |  133 +-
 .../lucene/replicator/nrt/ReplicaFileDeleter.java  |   39 +-
 .../apache/lucene/replicator/nrt/ReplicaNode.java  |  477 ++--
 .../nrt/SegmentInfosSearcherManager.java           |   45 +-
 .../apache/lucene/replicator/nrt/package-info.java |    6 +-
 .../org/apache/lucene/replicator/package-info.java |   61 +-
 .../lucene/replicator/ReplicatorTestCase.java      |   73 +-
 .../TestIndexAndTaxonomyReplicationClient.java     |  354 +--
 .../replicator/TestIndexAndTaxonomyRevision.java   |   38 +-
 .../replicator/TestIndexReplicationClient.java     |  270 +-
 .../lucene/replicator/TestIndexRevision.java       |   30 +-
 .../lucene/replicator/TestLocalReplicator.java     |  100 +-
 .../apache/lucene/replicator/TestSessionToken.java |    6 +-
 .../lucene/replicator/http/ReplicationServlet.java |   11 +-
 .../lucene/replicator/http/TestHttpReplicator.java |   62 +-
 .../org/apache/lucene/replicator/nrt/Jobs.java     |   18 +-
 .../apache/lucene/replicator/nrt/NodeProcess.java  |   31 +-
 .../lucene/replicator/nrt/SimpleCopyJob.java       |  108 +-
 .../lucene/replicator/nrt/SimplePrimaryNode.java   |  437 ++--
 .../lucene/replicator/nrt/SimpleReplicaNode.java   |  357 +--
 .../apache/lucene/replicator/nrt/SimpleServer.java |  159 +-
 .../lucene/replicator/nrt/SimpleTransLog.java      |   93 +-
 .../lucene/replicator/nrt/TestNRTReplication.java  |  189 +-
 .../replicator/nrt/TestStressNRTReplication.java   |  512 ++--
 .../apache/lucene/replicator/nrt/ThreadPumper.java |   62 +-
 .../lucene/payloads/PayloadSpanCollector.java      |   18 +-
 .../apache/lucene/payloads/PayloadSpanUtil.java    |   39 +-
 .../org/apache/lucene/payloads/package-info.java   |    4 +-
 .../codecs/idversion/IDVersionPostingsFormat.java  |   90 +-
 .../codecs/idversion/IDVersionPostingsReader.java  |   34 +-
 .../codecs/idversion/IDVersionPostingsWriter.java  |   55 +-
 .../idversion/IDVersionSegmentTermsEnum.java       |  547 ++--
 .../idversion/IDVersionSegmentTermsEnumFrame.java  |  159 +-
 .../sandbox/codecs/idversion/SingleDocsEnum.java   |    3 +-
 .../codecs/idversion/SinglePostingsEnum.java       |    2 +-
 .../idversion/VersionBlockTreeTermsReader.java     |  126 +-
 .../idversion/VersionBlockTreeTermsWriter.java     |  340 ++-
 .../codecs/idversion/VersionFieldReader.java       |   64 +-
 .../sandbox/codecs/idversion/package-info.java     |   10 +-
 .../lucene/sandbox/document/BigIntegerPoint.java   |  157 +-
 .../document/DoublePointMultiRangeBuilder.java     |   11 +-
 .../document/FloatPointMultiRangeBuilder.java      |   14 +-
 .../document/FloatPointNearestNeighbor.java        |  136 +-
 .../lucene/sandbox/document/HalfFloatPoint.java    |  196 +-
 .../document/IntPointMultiRangeBuilder.java        |   10 +-
 .../lucene/sandbox/document/LatLonBoundingBox.java |  145 +-
 .../document/LongPointMultiRangeBuilder.java       |   10 +-
 .../lucene/sandbox/document/package-info.java      |    9 +-
 .../lucene/sandbox/queries/FuzzyLikeThisQuery.java |  277 +--
 .../lucene/sandbox/queries/package-info.java       |    6 +-
 .../apache/lucene/sandbox/search/BM25FQuery.java   |  105 +-
 .../lucene/sandbox/search/CoveringQuery.java       |   61 +-
 .../lucene/sandbox/search/CoveringScorer.java      |  186 +-
 .../sandbox/search/DocValuesNumbersQuery.java      |   79 +-
 .../lucene/sandbox/search/DocValuesTermsQuery.java |  163 +-
 .../IndexSortSortedNumericDocValuesRangeQuery.java |   88 +-
 .../search/LargeNumHitsTopDocsCollector.java       |   35 +-
 .../search/LatLonPointPrototypeQueries.java        |   54 +-
 .../apache/lucene/sandbox/search/LongHashSet.java  |    9 +-
 .../sandbox/search/MultiNormsLeafSimScorer.java    |   46 +-
 .../lucene/sandbox/search/MultiRangeQuery.java     |  166 +-
 .../lucene/sandbox/search/NearestNeighbor.java     |  212 +-
 .../lucene/sandbox/search/PhraseWildcardQuery.java |  402 +--
 .../lucene/sandbox/search/TermAutomatonQuery.java  |  161 +-
 .../lucene/sandbox/search/TermAutomatonScorer.java |   86 +-
 .../search/TokenStreamToTermAutomatonQuery.java    |   29 +-
 .../apache/lucene/sandbox/search/package-info.java |    7 +-
 .../lucene/payloads/TestPayloadSpanUtil.java       |   19 +-
 .../codecs/idversion/StringAndPayloadField.java    |    4 +-
 .../idversion/TestIDVersionPostingsFormat.java     |  663 +++--
 .../sandbox/document/TestBigIntegerPoint.java      |   86 +-
 .../sandbox/document/TestDoubleRangeField.java     |   38 +-
 .../document/TestFloatPointNearestNeighbor.java    |   98 +-
 .../sandbox/document/TestHalfFloatPoint.java       |   43 +-
 .../sandbox/queries/TestFuzzyLikeThisQuery.java    |   22 +-
 .../lucene/sandbox/search/LongHashSetTests.java    |   11 +-
 .../lucene/sandbox/search/TestBM25FQuery.java      |   66 +-
 .../lucene/sandbox/search/TestCoveringQuery.java   |   29 +-
 .../sandbox/search/TestDocValuesNumbersQuery.java  |   39 +-
 .../sandbox/search/TestDocValuesTermsQuery.java    |   29 +-
 .../sandbox/search/TestFieldCacheTermsFilter.java  |   28 +-
 ...tIndexSortSortedNumericDocValuesRangeQuery.java |   51 +-
 .../search/TestLargeNumHitsTopDocsCollector.java   |   36 +-
 .../search/TestLatLonBoundingBoxQueries.java       |   90 +-
 .../sandbox/search/TestMultiRangeQueries.java      |   66 +-
 .../apache/lucene/sandbox/search/TestNearest.java  |  120 +-
 .../sandbox/search/TestPhraseWildcardQuery.java    |  378 +--
 .../sandbox/search/TestTermAutomatonQuery.java     |  209 +-
 .../org/apache/lucene/spatial/ShapeValues.java     |   11 +-
 .../apache/lucene/spatial/ShapeValuesSource.java   |   10 +-
 .../org/apache/lucene/spatial/SpatialStrategy.java |  115 +-
 .../spatial/bbox/BBoxOverlapRatioValueSource.java  |  169 +-
 .../spatial/bbox/BBoxSimilarityValueSource.java    |   62 +-
 .../apache/lucene/spatial/bbox/BBoxStrategy.java   |  227 +-
 .../lucene/spatial/bbox/BBoxValueSource.java       |   15 +-
 .../apache/lucene/spatial/bbox/package-info.java   |    6 +-
 .../composite/CompositeSpatialStrategy.java        |   64 +-
 .../spatial/composite/CompositeVerifyQuery.java    |   32 +-
 .../composite/IntersectsRPTVerifyQuery.java        |  103 +-
 .../lucene/spatial/composite/package-info.java     |    2 +-
 .../org/apache/lucene/spatial/package-info.java    |    2 +-
 .../spatial/prefix/AbstractPrefixTreeQuery.java    |   33 +-
 .../prefix/AbstractVisitingPrefixTreeQuery.java    |  242 +-
 .../prefix/BytesRefIteratorTokenStream.java        |    6 +-
 .../spatial/prefix/CellToBytesRefIterator.java     |    6 +-
 .../spatial/prefix/ContainsPrefixTreeQuery.java    |  148 +-
 .../lucene/spatial/prefix/HeatmapFacetCounter.java |  251 +-
 .../spatial/prefix/IntersectsPrefixTreeQuery.java  |   29 +-
 .../prefix/NumberRangePrefixTreeStrategy.java      |  121 +-
 .../prefix/PointPrefixTreeFieldCacheProvider.java  |   16 +-
 .../spatial/prefix/PrefixTreeFacetCounter.java     |  128 +-
 .../lucene/spatial/prefix/PrefixTreeStrategy.java  |  151 +-
 .../prefix/RecursivePrefixTreeStrategy.java        |  107 +-
 .../prefix/TermQueryPrefixTreeStrategy.java        |   52 +-
 .../spatial/prefix/WithinPrefixTreeQuery.java      |  147 +-
 .../apache/lucene/spatial/prefix/package-info.java |    4 +-
 .../apache/lucene/spatial/prefix/tree/Cell.java    |   91 +-
 .../lucene/spatial/prefix/tree/CellCanPrune.java   |    9 +-
 .../lucene/spatial/prefix/tree/CellIterator.java   |   26 +-
 .../spatial/prefix/tree/DateRangePrefixTree.java   |  361 +--
 .../spatial/prefix/tree/FilterCellIterator.java    |   15 +-
 .../spatial/prefix/tree/GeohashPrefixTree.java     |   58 +-
 .../lucene/spatial/prefix/tree/LegacyCell.java     |   97 +-
 .../spatial/prefix/tree/LegacyPrefixTree.java      |   39 +-
 .../spatial/prefix/tree/NumberRangePrefixTree.java |  526 ++--
 .../spatial/prefix/tree/PackedQuadPrefixTree.java  |  207 +-
 .../lucene/spatial/prefix/tree/QuadPrefixTree.java |  117 +-
 .../lucene/spatial/prefix/tree/S2PrefixTree.java   |  221 +-
 .../spatial/prefix/tree/S2PrefixTreeCell.java      |  442 ++--
 .../lucene/spatial/prefix/tree/S2ShapeFactory.java |    7 +-
 .../spatial/prefix/tree/SingletonCellIterator.java |    3 +-
 .../spatial/prefix/tree/SpatialPrefixTree.java     |   61 +-
 .../prefix/tree/SpatialPrefixTreeFactory.java      |   48 +-
 .../spatial/prefix/tree/TreeCellIterator.java      |   53 +-
 .../lucene/spatial/prefix/tree/package-info.java   |   19 +-
 .../apache/lucene/spatial/query/SpatialArgs.java   |   40 +-
 .../lucene/spatial/query/SpatialArgsParser.java    |   50 +-
 .../lucene/spatial/query/SpatialOperation.java     |  194 +-
 .../spatial/query/UnsupportedSpatialOperation.java |    4 +-
 .../apache/lucene/spatial/query/package-info.java  |    4 +-
 .../spatial/serialized/SerializedDVStrategy.java   |   94 +-
 .../lucene/spatial/serialized/package-info.java    |    6 +-
 .../lucene/spatial/spatial4j/Geo3dBinaryCodec.java |   28 +-
 .../lucene/spatial/spatial4j/Geo3dCircleShape.java |   24 +-
 .../spatial/spatial4j/Geo3dDistanceCalculator.java |   28 +-
 .../lucene/spatial/spatial4j/Geo3dPointShape.java  |   10 +-
 .../spatial/spatial4j/Geo3dRectangleShape.java     |   63 +-
 .../lucene/spatial/spatial4j/Geo3dShape.java       |   36 +-
 .../spatial/spatial4j/Geo3dShapeFactory.java       |  133 +-
 .../spatial4j/Geo3dSpatialContextFactory.java      |   13 +-
 .../lucene/spatial/spatial4j/package-info.java     |    2 +-
 .../spatial/util/CachingDoubleValueSource.java     |   14 +-
 .../spatial/util/DistanceToShapeValueSource.java   |   42 +-
 .../spatial/util/ReciprocalDoubleValuesSource.java |   22 +-
 .../lucene/spatial/util/ShapeAreaValueSource.java  |   36 +-
 .../lucene/spatial/util/ShapeFieldCache.java       |   26 +-
 .../util/ShapeFieldCacheDistanceValueSource.java   |   64 +-
 .../spatial/util/ShapeFieldCacheProvider.java      |   25 +-
 .../lucene/spatial/util/ShapeValuesPredicate.java  |   25 +-
 .../apache/lucene/spatial/util/package-info.java   |    2 +-
 .../lucene/spatial/vector/DistanceValueSource.java |   55 +-
 .../lucene/spatial/vector/PointVectorStrategy.java |  156 +-
 .../apache/lucene/spatial/vector/package-info.java |    4 +-
 .../org/apache/lucene/spatial/SpatialExample.java  |  110 +-
 .../apache/lucene/spatial/SpatialMatchConcern.java |   11 +-
 .../org/apache/lucene/spatial/SpatialTestCase.java |   53 +-
 .../org/apache/lucene/spatial/SpatialTestData.java |   21 +-
 .../apache/lucene/spatial/SpatialTestQuery.java    |   37 +-
 .../apache/lucene/spatial/StrategyTestCase.java    |   74 +-
 .../lucene/spatial/TestDistanceStrategy.java       |   39 +-
 .../org/apache/lucene/spatial/TestPortedSolr3.java |   69 +-
 .../lucene/spatial/TestQueryEqualsHashCode.java    |   60 +-
 .../org/apache/lucene/spatial/TestSpatialArgs.java |    9 +-
 .../apache/lucene/spatial/TestTestFramework.java   |   40 +-
 .../lucene/spatial/bbox/TestBBoxStrategy.java      |  172 +-
 .../spatial/composite/TestCompositeStrategy.java   |   51 +-
 .../prefix/RandomSpatialOpStrategyTestCase.java    |   65 +-
 .../lucene/spatial/prefix/TestDateNRStrategy.java  |   44 +-
 .../spatial/prefix/TestHeatmapFacetCounter.java    |  137 +-
 .../lucene/spatial/prefix/TestJtsPolygon.java      |   53 +-
 .../spatial/prefix/TestNumberRangeFacets.java      |   82 +-
 .../prefix/TestRandomSpatialOpFuzzyPrefixTree.java |  311 +--
 .../TestRandomSpatialOpFuzzyPrefixTree50.java      |    5 +-
 .../prefix/TestRecursivePrefixTreeStrategy.java    |   50 +-
 .../prefix/TestTermQueryPrefixGridStrategy.java    |   30 +-
 .../prefix/tree/TestDateRangePrefixTree.java       |  240 +-
 .../spatial/prefix/tree/TestS2PrefixTree.java      |   34 +-
 .../spatial/prefix/tree/TestSpatialPrefixTree.java |   32 +-
 .../spatial/query/TestSpatialArgsParser.java       |   28 +-
 .../spatial/serialized/TestSerializedStrategy.java |    3 +-
 .../spatial/spatial4j/RandomizedShapeTestCase.java |   19 +-
 .../spatial4j/ShapeRectRelationTestCase.java       |   42 +-
 .../apache/lucene/spatial/spatial4j/TestGeo3d.java |   49 +-
 .../lucene/spatial/spatial4j/TestGeo3dRpt.java     |   51 +-
 .../TestGeo3dShapeSphereModelRectRelation.java     |   44 +-
 .../TestGeo3dShapeWGS84ModelRectRelation.java      |  120 +-
 .../spatial/vector/TestPointVectorStrategy.java    |   31 +-
 .../lucene/spatial3d/Geo3DDocValuesField.java      |  313 ++-
 .../org/apache/lucene/spatial3d/Geo3DPoint.java    |  151 +-
 .../spatial3d/Geo3DPointDistanceComparator.java    |   72 +-
 .../Geo3DPointOutsideDistanceComparator.java       |   55 +-
 .../spatial3d/Geo3DPointOutsideSortField.java      |   17 +-
 .../lucene/spatial3d/Geo3DPointSortField.java      |   15 +-
 .../org/apache/lucene/spatial3d/Geo3DUtil.java     |  156 +-
 .../lucene/spatial3d/PointInGeo3DShapeQuery.java   |   35 +-
 .../spatial3d/PointInShapeIntersectVisitor.java    |  108 +-
 .../apache/lucene/spatial3d/geom/ArcDistance.java  |   53 +-
 .../lucene/spatial3d/geom/BasePlanetObject.java    |   30 +-
 .../apache/lucene/spatial3d/geom/BaseXYZSolid.java |   81 +-
 .../org/apache/lucene/spatial3d/geom/Bounded.java  |    7 +-
 .../org/apache/lucene/spatial3d/geom/Bounds.java   |  181 +-
 .../lucene/spatial3d/geom/DistanceStyle.java       |  110 +-
 .../org/apache/lucene/spatial3d/geom/GeoArea.java  |   36 +-
 .../lucene/spatial3d/geom/GeoAreaFactory.java      |   28 +-
 .../apache/lucene/spatial3d/geom/GeoAreaShape.java |   16 +-
 .../org/apache/lucene/spatial3d/geom/GeoBBox.java  |    6 +-
 .../lucene/spatial3d/geom/GeoBBoxFactory.java      |   85 +-
 .../lucene/spatial3d/geom/GeoBaseAreaShape.java    |   62 +-
 .../apache/lucene/spatial3d/geom/GeoBaseBBox.java  |   12 +-
 .../lucene/spatial3d/geom/GeoBaseCircle.java       |    8 +-
 .../spatial3d/geom/GeoBaseCompositeAreaShape.java  |   74 +-
 .../geom/GeoBaseCompositeMembershipShape.java      |   21 +-
 .../spatial3d/geom/GeoBaseCompositeShape.java      |   37 +-
 .../spatial3d/geom/GeoBaseDistanceShape.java       |   38 +-
 .../spatial3d/geom/GeoBaseMembershipShape.java     |   22 +-
 .../apache/lucene/spatial3d/geom/GeoBasePath.java  |    8 +-
 .../lucene/spatial3d/geom/GeoBasePolygon.java      |    8 +-
 .../apache/lucene/spatial3d/geom/GeoBaseShape.java |   15 +-
 .../apache/lucene/spatial3d/geom/GeoCircle.java    |    3 +-
 .../lucene/spatial3d/geom/GeoCircleFactory.java    |   47 +-
 .../lucene/spatial3d/geom/GeoComplexPolygon.java   | 1857 +++++++++-----
 .../spatial3d/geom/GeoCompositeAreaShape.java      |   14 +-
 .../geom/GeoCompositeMembershipShape.java          |   17 +-
 .../lucene/spatial3d/geom/GeoCompositePolygon.java |   20 +-
 .../lucene/spatial3d/geom/GeoConcavePolygon.java   |  311 ++-
 .../lucene/spatial3d/geom/GeoConvexPolygon.java    |  316 +--
 .../geom/GeoDegenerateHorizontalLine.java          |  118 +-
 .../spatial3d/geom/GeoDegenerateLatitudeZone.java  |   46 +-
 .../geom/GeoDegenerateLongitudeSlice.java          |   68 +-
 .../lucene/spatial3d/geom/GeoDegeneratePath.java   |  796 +++---
 .../lucene/spatial3d/geom/GeoDegeneratePoint.java  |   87 +-
 .../spatial3d/geom/GeoDegenerateVerticalLine.java  |  125 +-
 .../apache/lucene/spatial3d/geom/GeoDistance.java  |   56 +-
 .../lucene/spatial3d/geom/GeoDistanceShape.java    |   21 +-
 .../lucene/spatial3d/geom/GeoExactCircle.java      |  314 ++-
 .../lucene/spatial3d/geom/GeoLatitudeZone.java     |   99 +-
 .../lucene/spatial3d/geom/GeoLongitudeSlice.java   |  109 +-
 .../lucene/spatial3d/geom/GeoMembershipShape.java  |    7 +-
 .../spatial3d/geom/GeoNorthLatitudeZone.java       |   61 +-
 .../lucene/spatial3d/geom/GeoNorthRectangle.java   |  196 +-
 .../lucene/spatial3d/geom/GeoOutsideDistance.java  |   23 +-
 .../org/apache/lucene/spatial3d/geom/GeoPath.java  |   37 +-
 .../lucene/spatial3d/geom/GeoPathFactory.java      |   12 +-
 .../org/apache/lucene/spatial3d/geom/GeoPoint.java |  230 +-
 .../lucene/spatial3d/geom/GeoPointShape.java       |    7 +-
 .../spatial3d/geom/GeoPointShapeFactory.java       |   11 +-
 .../apache/lucene/spatial3d/geom/GeoPolygon.java   |    4 +-
 .../lucene/spatial3d/geom/GeoPolygonFactory.java   | 1435 ++++++-----
 .../apache/lucene/spatial3d/geom/GeoRectangle.java |  227 +-
 .../apache/lucene/spatial3d/geom/GeoS2Shape.java   |  366 +--
 .../lucene/spatial3d/geom/GeoS2ShapeFactory.java   |   20 +-
 .../org/apache/lucene/spatial3d/geom/GeoShape.java |   39 +-
 .../apache/lucene/spatial3d/geom/GeoSizeable.java  |    4 +-
 .../spatial3d/geom/GeoSouthLatitudeZone.java       |   51 +-
 .../lucene/spatial3d/geom/GeoSouthRectangle.java   |  159 +-
 .../lucene/spatial3d/geom/GeoStandardCircle.java   |   93 +-
 .../lucene/spatial3d/geom/GeoStandardPath.java     | 1397 +++++++----
 .../geom/GeoWideDegenerateHorizontalLine.java      |  142 +-
 .../spatial3d/geom/GeoWideLongitudeSlice.java      |  132 +-
 .../spatial3d/geom/GeoWideNorthRectangle.java      |  178 +-
 .../lucene/spatial3d/geom/GeoWideRectangle.java    |  221 +-
 .../spatial3d/geom/GeoWideSouthRectangle.java      |  156 +-
 .../org/apache/lucene/spatial3d/geom/GeoWorld.java |   33 +-
 .../apache/lucene/spatial3d/geom/LatLonBounds.java |  181 +-
 .../lucene/spatial3d/geom/LinearDistance.java      |   53 +-
 .../spatial3d/geom/LinearSquaredDistance.java      |   53 +-
 .../apache/lucene/spatial3d/geom/Membership.java   |    1 -
 .../lucene/spatial3d/geom/NormalDistance.java      |   53 +-
 .../spatial3d/geom/NormalSquaredDistance.java      |   53 +-
 .../org/apache/lucene/spatial3d/geom/Plane.java    | 1681 ++++++++-----
 .../apache/lucene/spatial3d/geom/PlanetModel.java  |  410 ++-
 .../apache/lucene/spatial3d/geom/PlanetObject.java |    1 -
 .../lucene/spatial3d/geom/SerializableObject.java  |  279 ++-
 .../apache/lucene/spatial3d/geom/SidedPlane.java   |  171 +-
 .../lucene/spatial3d/geom/StandardObjects.java     |   92 +-
 .../lucene/spatial3d/geom/StandardXYZSolid.java    |  462 ++--
 .../org/apache/lucene/spatial3d/geom/Tools.java    |   14 +-
 .../org/apache/lucene/spatial3d/geom/Vector.java   |  268 +-
 .../apache/lucene/spatial3d/geom/XYZBounds.java    |  219 +-
 .../org/apache/lucene/spatial3d/geom/XYZSolid.java |    4 +-
 .../lucene/spatial3d/geom/XYZSolidFactory.java     |   42 +-
 .../apache/lucene/spatial3d/geom/XYdZSolid.java    |  183 +-
 .../apache/lucene/spatial3d/geom/XdYZSolid.java    |  176 +-
 .../apache/lucene/spatial3d/geom/XdYdZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXYZSolid.java    |  191 +-
 .../apache/lucene/spatial3d/geom/dXYdZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXdYZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXdYdZSolid.java  |   90 +-
 .../apache/lucene/spatial3d/geom/package-info.java |    2 +-
 .../org/apache/lucene/spatial3d/package-info.java  |    3 +-
 .../lucene/spatial3d/TestGeo3DDocValues.java       |   17 +-
 .../apache/lucene/spatial3d/TestGeo3DPoint.java    | 1414 +++++++----
 .../apache/lucene/spatial3d/geom/Geo3DUtil.java    |    6 +-
 .../spatial3d/geom/RandomGeo3dShapeGenerator.java  |  559 +++--
 .../geom/TestCompositeGeoPolygonRelationships.java |  971 ++++----
 .../apache/lucene/spatial3d/geom/TestGeoBBox.java  |  249 +-
 .../lucene/spatial3d/geom/TestGeoCircle.java       |  310 ++-
 .../spatial3d/geom/TestGeoConvexPolygon.java       |   12 +-
 .../lucene/spatial3d/geom/TestGeoExactCircle.java  |  181 +-
 .../apache/lucene/spatial3d/geom/TestGeoModel.java |   21 +-
 .../apache/lucene/spatial3d/geom/TestGeoPath.java  |  260 +-
 .../apache/lucene/spatial3d/geom/TestGeoPoint.java |   59 +-
 .../lucene/spatial3d/geom/TestGeoPolygon.java      | 2607 +++++++++++++-------
 .../apache/lucene/spatial3d/geom/TestPlane.java    |   29 +-
 .../spatial3d/geom/TestRandomBinaryCodec.java      |   13 +-
 .../spatial3d/geom/TestRandomGeoPolygon.java       |  172 +-
 .../geom/TestRandomGeoShapeRelationship.java       |  120 +-
 .../lucene/spatial3d/geom/TestRandomPlane.java     |   58 +-
 .../geom/TestSimpleGeoPolygonRelationships.java    | 1203 +++++----
 .../apache/lucene/spatial3d/geom/TestXYZSolid.java |   32 +-
 .../lucene/search/spell/CombineSuggestion.java     |   23 +-
 .../org/apache/lucene/search/spell/Dictionary.java |    9 +-
 .../lucene/search/spell/DirectSpellChecker.java    |  352 ++-
 .../search/spell/HighFrequencyDictionary.java      |   33 +-
 .../lucene/search/spell/JaroWinklerDistance.java   |   39 +-
 .../lucene/search/spell/LevenshteinDistance.java   |  161 +-
 .../lucene/search/spell/LuceneDictionary.java      |   14 +-
 .../search/spell/LuceneLevenshteinDistance.java    |   71 +-
 .../apache/lucene/search/spell/NGramDistance.java  |  132 +-
 .../lucene/search/spell/PlainTextDictionary.java   |   17 +-
 .../apache/lucene/search/spell/SpellChecker.java   |  292 ++-
 .../apache/lucene/search/spell/StringDistance.java |   14 +-
 .../apache/lucene/search/spell/SuggestMode.java    |   15 +-
 .../apache/lucene/search/spell/SuggestWord.java    |   30 +-
 .../spell/SuggestWordFrequencyComparator.java      |   12 +-
 .../lucene/search/spell/SuggestWordQueue.java      |   16 +-
 .../search/spell/SuggestWordScoreComparator.java   |   13 +-
 .../lucene/search/spell/WordBreakSpellChecker.java |  334 ++-
 .../apache/lucene/search/spell/package-info.java   |    5 +-
 .../apache/lucene/search/suggest/BitsProducer.java |    9 +-
 .../search/suggest/BufferedInputIterator.java      |    8 +-
 .../lucene/search/suggest/DocumentDictionary.java  |   99 +-
 .../suggest/DocumentValueSourceDictionary.java     |  108 +-
 .../lucene/search/suggest/FileDictionary.java      |   75 +-
 .../lucene/search/suggest/InMemorySorter.java      |    9 +-
 .../lucene/search/suggest/InputIterator.java       |   45 +-
 .../org/apache/lucene/search/suggest/Lookup.java   |  156 +-
 .../lucene/search/suggest/SortedInputIterator.java |  147 +-
 .../search/suggest/UnsortedInputIterator.java      |   19 +-
 .../suggest/analyzing/AnalyzingInfixSuggester.java |  542 ++--
 .../suggest/analyzing/AnalyzingSuggester.java      |  481 ++--
 .../suggest/analyzing/BlendedInfixSuggester.java   |  168 +-
 .../lucene/search/suggest/analyzing/FSTUtil.java   |   64 +-
 .../suggest/analyzing/FreeTextSuggester.java       |  459 ++--
 .../search/suggest/analyzing/FuzzySuggester.java   |  220 +-
 .../suggest/analyzing/SuggestStopFilter.java       |   23 +-
 .../analyzing/SuggestStopFilterFactory.java        |   58 +-
 .../search/suggest/analyzing/package-info.java     |    6 +-
 .../document/Completion50PostingsFormat.java       |   19 +-
 .../document/Completion84PostingsFormat.java       |   14 +-
 .../suggest/document/CompletionAnalyzer.java       |   92 +-
 .../suggest/document/CompletionFieldsConsumer.java |   73 +-
 .../suggest/document/CompletionFieldsProducer.java |   66 +-
 .../suggest/document/CompletionPostingsFormat.java |  130 +-
 .../search/suggest/document/CompletionQuery.java   |   57 +-
 .../search/suggest/document/CompletionScorer.java  |   40 +-
 .../search/suggest/document/CompletionTerms.java   |   26 +-
 .../suggest/document/CompletionTokenStream.java    |   40 +-
 .../search/suggest/document/CompletionWeight.java  |   35 +-
 .../suggest/document/CompletionsTermsReader.java   |   21 +-
 .../search/suggest/document/ContextQuery.java      |  149 +-
 .../suggest/document/ContextSuggestField.java      |   65 +-
 .../suggest/document/FuzzyCompletionQuery.java     |  138 +-
 .../search/suggest/document/NRTSuggester.java      |  312 +--
 .../suggest/document/NRTSuggesterBuilder.java      |   56 +-
 .../suggest/document/PrefixCompletionQuery.java    |   30 +-
 .../suggest/document/RegexCompletionQuery.java     |   53 +-
 .../search/suggest/document/SuggestField.java      |   58 +-
 .../suggest/document/SuggestIndexSearcher.java     |   33 +-
 .../document/SuggestScoreDocPriorityQueue.java     |   13 +-
 .../search/suggest/document/TopSuggestDocs.java    |   53 +-
 .../suggest/document/TopSuggestDocsCollector.java  |   87 +-
 .../search/suggest/document/package-info.java      |    4 +-
 .../lucene/search/suggest/fst/BytesRefSorter.java  |   26 +-
 .../search/suggest/fst/ExternalRefSorter.java      |   54 +-
 .../lucene/search/suggest/fst/FSTCompletion.java   |  178 +-
 .../search/suggest/fst/FSTCompletionBuilder.java   |  240 +-
 .../search/suggest/fst/FSTCompletionLookup.java    |  179 +-
 .../search/suggest/fst/WFSTCompletionLookup.java   |  135 +-
 .../lucene/search/suggest/fst/package-info.java    |    6 +-
 .../search/suggest/jaspell/JaspellLookup.java      |   45 +-
 .../suggest/jaspell/JaspellTernarySearchTrie.java  |  662 +++--
 .../search/suggest/jaspell/package-info.java       |    8 +-
 .../apache/lucene/search/suggest/package-info.java |    4 +-
 .../lucene/search/suggest/tst/TSTAutocomplete.java |   65 +-
 .../lucene/search/suggest/tst/TSTLookup.java       |  120 +-
 .../lucene/search/suggest/tst/TernaryTreeNode.java |   25 +-
 .../lucene/search/suggest/tst/package-info.java    |    6 +-
 .../search/spell/TestDirectSpellChecker.java       |  149 +-
 .../search/spell/TestJaroWinklerDistance.java      |    9 +-
 .../search/spell/TestLevenshteinDistance.java      |   23 +-
 .../lucene/search/spell/TestLuceneDictionary.java  |   56 +-
 .../lucene/search/spell/TestNGramDistance.java     |   76 +-
 .../search/spell/TestPlainTextDictionary.java      |    7 +-
 .../lucene/search/spell/TestSpellChecker.java      |  283 ++-
 .../search/spell/TestWordBreakSpellChecker.java    |  313 ++-
 .../org/apache/lucene/search/suggest/Average.java  |   70 +-
 .../search/suggest/DocumentDictionaryTest.java     |  148 +-
 .../suggest/DocumentValueSourceDictionaryTest.java |  136 +-
 .../lucene/search/suggest/FileDictionaryTest.java  |   74 +-
 .../org/apache/lucene/search/suggest/Input.java    |   28 +-
 .../lucene/search/suggest/InputArrayIterator.java  |   10 +-
 .../lucene/search/suggest/LookupBenchmarkTest.java |  183 +-
 .../lucene/search/suggest/PersistenceTest.java     |   48 +-
 .../lucene/search/suggest/TestInputIterator.java   |   71 +-
 .../analyzing/AnalyzingInfixSuggesterTest.java     |  715 ++++--
 .../suggest/analyzing/AnalyzingSuggesterTest.java  |  601 +++--
 .../analyzing/BlendedInfixSuggesterTest.java       |  298 ++-
 .../suggest/analyzing/FuzzySuggesterTest.java      |  626 +++--
 .../suggest/analyzing/TestFreeTextSuggester.java   |  370 ++-
 .../suggest/analyzing/TestSuggestStopFilter.java   |  137 +-
 .../analyzing/TestSuggestStopFilterFactory.java    |   62 +-
 .../search/suggest/document/TestContextQuery.java  |  191 +-
 .../suggest/document/TestContextSuggestField.java  |  127 +-
 .../suggest/document/TestFuzzyCompletionQuery.java |   41 +-
 .../document/TestPrefixCompletionQuery.java        |  196 +-
 .../suggest/document/TestRegexCompletionQuery.java |   50 +-
 .../search/suggest/document/TestSuggestField.java  |  300 ++-
 .../search/suggest/fst/BytesRefSortersTest.java    |   15 +-
 .../search/suggest/fst/FSTCompletionTest.java      |  157 +-
 .../search/suggest/fst/WFSTCompletionTest.java     |  109 +-
 .../analysis/BaseTokenStreamFactoryTestCase.java   |  120 +-
 .../lucene/analysis/BaseTokenStreamTestCase.java   |  826 +++++--
 .../lucene/analysis/CannedBinaryTokenStream.java   |   16 +-
 .../apache/lucene/analysis/CannedTokenStream.java  |   14 +-
 .../apache/lucene/analysis/CollationTestBase.java  |  108 +-
 .../apache/lucene/analysis/CrankyTokenFilter.java  |   14 +-
 .../lucene/analysis/LookaheadTokenFilter.java      |  117 +-
 .../org/apache/lucene/analysis/MockAnalyzer.java   |  102 +-
 .../apache/lucene/analysis/MockBytesAnalyzer.java  |   14 +-
 .../org/apache/lucene/analysis/MockCharFilter.java |   46 +-
 .../analysis/MockFixedLengthPayloadFilter.java     |    5 +-
 .../lucene/analysis/MockGraphTokenFilter.java      |   29 +-
 .../analysis/MockHoleInjectingTokenFilter.java     |   10 +-
 .../lucene/analysis/MockLowerCaseFilter.java       |    6 +-
 .../lucene/analysis/MockPayloadAnalyzer.java       |   22 +-
 .../analysis/MockRandomLookaheadTokenFilter.java   |   11 +-
 .../apache/lucene/analysis/MockReaderWrapper.java  |    9 +-
 .../lucene/analysis/MockSynonymAnalyzer.java       |    1 -
 .../apache/lucene/analysis/MockSynonymFilter.java  |    5 +-
 .../apache/lucene/analysis/MockTokenFilter.java    |   74 +-
 .../org/apache/lucene/analysis/MockTokenizer.java  |  166 +-
 .../analysis/MockUTF16TermAttributeImpl.java       |   12 +-
 .../analysis/MockVariableLengthPayloadFilter.java  |    5 +-
 .../lucene/analysis/SimplePayloadFilter.java       |    1 -
 .../src/java/org/apache/lucene/analysis/Token.java |  112 +-
 .../apache/lucene/analysis/TokenStreamToDot.java   |   27 +-
 .../lucene/analysis/ValidatingTokenFilter.java     |   72 +-
 .../apache/lucene/analysis/VocabularyAssert.java   |   34 +-
 .../apache/lucene/codecs/MissingOrdRemapper.java   |   21 +-
 .../lucene/codecs/asserting/AssertingCodec.java    |   66 +-
 .../codecs/asserting/AssertingDocValuesFormat.java |   75 +-
 .../codecs/asserting/AssertingLiveDocsFormat.java  |   15 +-
 .../codecs/asserting/AssertingNormsFormat.java     |   27 +-
 .../codecs/asserting/AssertingPointsFormat.java    |   26 +-
 .../codecs/asserting/AssertingPostingsFormat.java  |   46 +-
 .../asserting/AssertingStoredFieldsFormat.java     |   26 +-
 .../asserting/AssertingTermVectorsFormat.java      |   32 +-
 .../lucene/codecs/asserting/package-info.java      |    4 +-
 .../lucene/codecs/blockterms/LuceneFixedGap.java   |    8 +-
 .../blockterms/LuceneVarGapDocFreqInterval.java    |   17 +-
 .../blockterms/LuceneVarGapFixedInterval.java      |   13 +-
 .../bloom/TestBloomFilteredLucenePostings.java     |   35 +-
 .../codecs/cheapbastard/CheapBastardCodec.java     |    6 +-
 .../lucene/codecs/cheapbastard/package-info.java   |    6 +-
 .../codecs/compressing/CompressingCodec.java       |  141 +-
 .../DeflateWithPresetCompressingCodec.java         |   16 +-
 .../codecs/compressing/FastCompressingCodec.java   |   13 +-
 .../FastDecompressionCompressingCodec.java         |   13 +-
 .../HighCompressionCompressingCodec.java           |   13 +-
 .../compressing/LZ4WithPresetCompressingCodec.java |   16 +-
 .../compressing/dummy/DummyCompressingCodec.java   |  118 +-
 .../codecs/compressing/dummy/package-info.java     |    4 +-
 .../apache/lucene/codecs/cranky/CrankyCodec.java   |    8 +-
 .../lucene/codecs/cranky/CrankyCompoundFormat.java |   10 +-
 .../codecs/cranky/CrankyDocValuesFormat.java       |   26 +-
 .../codecs/cranky/CrankyFieldInfosFormat.java      |   15 +-
 .../lucene/codecs/cranky/CrankyLiveDocsFormat.java |   10 +-
 .../lucene/codecs/cranky/CrankyNormsFormat.java    |    9 +-
 .../lucene/codecs/cranky/CrankyPointsFormat.java   |   23 +-
 .../lucene/codecs/cranky/CrankyPostingsFormat.java |   17 +-
 .../codecs/cranky/CrankySegmentInfoFormat.java     |    9 +-
 .../codecs/cranky/CrankyStoredFieldsFormat.java    |   21 +-
 .../codecs/cranky/CrankyTermVectorsFormat.java     |   34 +-
 .../apache/lucene/codecs/cranky/package-info.java  |    4 +-
 .../mockrandom/MockRandomPostingsFormat.java       |  105 +-
 .../lucene/codecs/mockrandom/package-info.java     |    4 +-
 .../codecs/ramonly/RAMOnlyPostingsFormat.java      |  107 +-
 .../apache/lucene/codecs/ramonly/package-info.java |    4 +-
 .../codecs/uniformsplit/Rot13CypherTestUtil.java   |   11 +-
 .../UniformSplitRot13PostingsFormat.java           |   25 +-
 .../STUniformSplitRot13PostingsFormat.java         |   25 +-
 .../apache/lucene/geo/BaseGeoPointTestCase.java    |  869 ++++---
 .../org/apache/lucene/geo/BaseXYPointTestCase.java |  655 +++--
 .../java/org/apache/lucene/geo/EarthDebugger.java  |  124 +-
 .../java/org/apache/lucene/geo/GeoTestUtil.java    |  288 ++-
 .../java/org/apache/lucene/geo/ShapeTestUtil.java  |  107 +-
 .../apache/lucene/index/AlcoholicMergePolicy.java  |   51 +-
 .../lucene/index/AllDeletedFilterReader.java       |    6 +-
 .../lucene/index/AssertingDirectoryReader.java     |    6 +-
 .../apache/lucene/index/AssertingLeafReader.java   |  224 +-
 .../lucene/index/BaseCompoundFormatTestCase.java   |  413 ++--
 .../BaseCompressingDocValuesFormatTestCase.java    |    4 +-
 .../lucene/index/BaseDocValuesFormatTestCase.java  |  989 ++++----
 .../lucene/index/BaseFieldInfoFormatTestCase.java  |  246 +-
 .../lucene/index/BaseIndexFileFormatTestCase.java  |  563 +++--
 .../lucene/index/BaseLiveDocsFormatTestCase.java   |   50 +-
 .../lucene/index/BaseMergePolicyTestCase.java      |  375 +--
 .../lucene/index/BaseNormsFormatTestCase.java      |  505 ++--
 .../lucene/index/BasePointsFormatTestCase.java     |  569 +++--
 .../lucene/index/BasePostingsFormatTestCase.java   |  670 ++---
 .../index/BaseSegmentInfoFormatTestCase.java       |  473 ++--
 .../index/BaseStoredFieldsFormatTestCase.java      |  238 +-
 .../index/BaseTermVectorsFormatTestCase.java       |  406 +--
 .../apache/lucene/index/BaseTestCheckIndex.java    |   44 +-
 .../java/org/apache/lucene/index/DocHelper.java    |  187 +-
 .../apache/lucene/index/FieldFilterLeafReader.java |   90 +-
 .../org/apache/lucene/index/ForceMergePolicy.java  |   10 +-
 .../lucene/index/IndexWriterMaxDocsChanger.java    |   16 +-
 .../apache/lucene/index/MergingCodecReader.java    |   41 +-
 .../index/MergingDirectoryReaderWrapper.java       |   22 +-
 .../lucene/index/MismatchedDirectoryReader.java    |    9 +-
 .../apache/lucene/index/MismatchedLeafReader.java  |   59 +-
 .../apache/lucene/index/MockRandomMergePolicy.java |  102 +-
 .../lucene/index/OwnCacheKeyMultiReader.java       |   35 +-
 .../org/apache/lucene/index/PerThreadPKLookup.java |   33 +-
 .../apache/lucene/index/PointsStackTracker.java    |   34 +-
 .../java/org/apache/lucene/index/RandomCodec.java  |  224 +-
 .../org/apache/lucene/index/RandomIndexWriter.java |  234 +-
 .../apache/lucene/index/RandomPostingsTester.java  |  697 ++++--
 .../ThreadedIndexingAndSearchingTestCase.java      |  680 ++---
 .../org/apache/lucene/mockfile/DisableFsyncFS.java |   25 +-
 .../java/org/apache/lucene/mockfile/ExtrasFS.java  |   43 +-
 .../mockfile/FilterAsynchronousFileChannel.java    |   40 +-
 .../lucene/mockfile/FilterDirectoryStream.java     |   31 +-
 .../apache/lucene/mockfile/FilterFileChannel.java  |   25 +-
 .../apache/lucene/mockfile/FilterFileStore.java    |   26 +-
 .../apache/lucene/mockfile/FilterFileSystem.java   |   39 +-
 .../lucene/mockfile/FilterFileSystemProvider.java  |  114 +-
 .../apache/lucene/mockfile/FilterInputStream2.java |   37 +-
 .../lucene/mockfile/FilterOutputStream2.java       |   39 +-
 .../org/apache/lucene/mockfile/FilterPath.java     |   72 +-
 .../lucene/mockfile/FilterSeekableByteChannel.java |   25 +-
 .../org/apache/lucene/mockfile/HandleLimitFS.java  |   11 +-
 .../apache/lucene/mockfile/HandleTrackingFS.java   |  413 ++--
 .../java/org/apache/lucene/mockfile/LeakFS.java    |   16 +-
 .../lucene/mockfile/MockFileSystemTestCase.java    |   22 +-
 .../java/org/apache/lucene/mockfile/ShuffleFS.java |   23 +-
 .../java/org/apache/lucene/mockfile/VerboseFS.java |   54 +-
 .../apache/lucene/mockfile/VirusCheckingFS.java    |   25 +-
 .../java/org/apache/lucene/mockfile/WindowsFS.java |   53 +-
 .../org/apache/lucene/mockfile/package-info.java   |   13 +-
 .../apache/lucene/search/AssertingBulkScorer.java  |   11 +-
 .../apache/lucene/search/AssertingCollector.java   |   14 +-
 .../lucene/search/AssertingIndexSearcher.java      |   24 +-
 .../lucene/search/AssertingLeafCollector.java      |    4 +-
 .../org/apache/lucene/search/AssertingMatches.java |    5 +-
 .../lucene/search/AssertingMatchesIterator.java    |    9 +-
 .../org/apache/lucene/search/AssertingQuery.java   |   11 +-
 .../apache/lucene/search/AssertingScorable.java    |   20 +-
 .../org/apache/lucene/search/AssertingScorer.java  |  116 +-
 .../org/apache/lucene/search/AssertingWeight.java  |   14 +-
 .../lucene/search/BaseExplanationTestCase.java     |   91 +-
 .../lucene/search/BaseRangeFieldQueryTestCase.java |  133 +-
 .../lucene/search/BlockScoreQueryWrapper.java      |    9 +-
 .../lucene/search/BulkScorerWrapperScorer.java     |   38 +-
 .../java/org/apache/lucene/search/CheckHits.java   |  397 +--
 .../java/org/apache/lucene/search/QueryUtils.java  |  636 +++--
 .../lucene/search/RandomApproximationQuery.java    |   24 +-
 .../apache/lucene/search/ScorerIndexSearcher.java  |   31 +-
 .../lucene/search/SearchEquivalenceTestBase.java   |  106 +-
 .../lucene/search/ShardSearchingTestBase.java      |  148 +-
 .../search/similarities/AssertingSimilarity.java   |   15 +-
 .../similarities/BaseSimilarityTestCase.java       |  171 +-
 .../search/similarities/RandomSimilarity.java      |   37 +-
 .../lucene/search/spans/AssertingSpanQuery.java    |    9 +-
 .../lucene/search/spans/AssertingSpanWeight.java   |   10 +-
 .../apache/lucene/search/spans/AssertingSpans.java |  129 +-
 .../apache/lucene/search/spans/SpanTestUtil.java   |  106 +-
 .../apache/lucene/store/BaseDirectoryTestCase.java |  404 +--
 .../apache/lucene/store/BaseDirectoryWrapper.java  |   18 +-
 .../lucene/store/BaseLockFactoryTestCase.java      |  150 +-
 .../apache/lucene/store/CorruptingIndexOutput.java |   21 +-
 .../apache/lucene/store/MockDirectoryWrapper.java  |  632 ++---
 .../apache/lucene/store/MockIndexInputWrapper.java |   30 +-
 .../lucene/store/MockIndexOutputWrapper.java       |   43 +-
 .../apache/lucene/store/RawDirectoryWrapper.java   |   14 +-
 .../store/SlowClosingMockIndexInputWrapper.java    |   14 +-
 .../store/SlowOpeningMockIndexInputWrapper.java    |   13 +-
 .../lucene/util/AbstractBeforeAfterRule.java       |   11 +-
 .../org/apache/lucene/util/BaseBitSetTestCase.java |   16 +-
 .../apache/lucene/util/BaseDocIdSetTestCase.java   |   15 +-
 .../org/apache/lucene/util/CloseableDirectory.java |   10 +-
 .../src/java/org/apache/lucene/util/English.java   |   26 +-
 .../lucene/util/FailOnNonBulkMergesInfoStream.java |    5 +-
 .../java/org/apache/lucene/util/FailureMarker.java |    5 +-
 .../java/org/apache/lucene/util/LineFileDocs.java  |   64 +-
 .../lucene/util/LuceneJUnit3MethodProvider.java    |   21 +-
 .../org/apache/lucene/util/LuceneTestCase.java     | 1936 ++++++++-------
 .../org/apache/lucene/util/NullInfoStream.java     |   10 +-
 .../lucene/util/QuickPatchThreadsFilter.java       |   11 +-
 .../org/apache/lucene/util/RamUsageTester.java     |  276 ++-
 .../org/apache/lucene/util/RemoveUponClose.java    |   13 +-
 .../src/java/org/apache/lucene/util/Rethrow.java   |   16 +-
 .../lucene/util/RunListenerPrintReproduceInfo.java |   93 +-
 .../lucene/util/TestRuleAssertionsRequired.java    |    6 +-
 .../org/apache/lucene/util/TestRuleDelegate.java   |    5 +-
 .../util/TestRuleIgnoreAfterMaxFailures.java       |   34 +-
 .../lucene/util/TestRuleIgnoreTestSuites.java      |   37 +-
 .../apache/lucene/util/TestRuleLimitSysouts.java   |  169 +-
 .../apache/lucene/util/TestRuleMarkFailure.java    |   28 +-
 .../util/TestRuleRestoreSystemProperties.java      |   26 +-
 .../util/TestRuleSetupAndRestoreClassEnv.java      |  173 +-
 .../util/TestRuleSetupAndRestoreInstanceEnv.java   |    4 +-
 .../lucene/util/TestRuleSetupTeardownChained.java  |   23 +-
 .../apache/lucene/util/TestRuleStoreClassName.java |   13 +-
 .../lucene/util/TestRuleTemporaryFilesCleanup.java |  119 +-
 .../lucene/util/TestRuleThreadAndTestName.java     |   13 +-
 .../apache/lucene/util/TestSecurityManager.java    |   72 +-
 .../src/java/org/apache/lucene/util/TestUtil.java  | 1119 ++++++---
 .../apache/lucene/util/ThrottledIndexOutput.java   |   45 +-
 .../src/java/org/apache/lucene/util/TimeUnits.java |    2 +-
 .../lucene/util/automaton/AutomatonTestUtil.java   |  182 +-
 .../java/org/apache/lucene/util/fst/FSTTester.java |  297 ++-
 .../lucene/analysis/TestLookaheadTokenFilter.java  |   94 +-
 .../apache/lucene/analysis/TestMockAnalyzer.java   |  307 ++-
 .../apache/lucene/analysis/TestMockCharFilter.java |   54 +-
 .../lucene/analysis/TestMockSynonymFilter.java     |  199 +-
 .../org/apache/lucene/analysis/TestPosition.java   |    5 +-
 .../lucene/analysis/TrivialLookaheadFilter.java    |   20 +-
 .../asserting/TestAssertingDocValuesFormat.java    |    2 +-
 .../codecs/asserting/TestAssertingNormsFormat.java |    4 +-
 .../asserting/TestAssertingPostingsFormat.java     |    2 +-
 .../asserting/TestAssertingStoredFieldsFormat.java |    4 +-
 .../asserting/TestAssertingTermVectorsFormat.java  |    2 +-
 .../TestCompressingStoredFieldsFormat.java         |   75 +-
 .../TestCompressingTermVectorsFormat.java          |   20 +-
 .../lucene/index/TestAssertingLeafReader.java      |   20 +-
 .../apache/lucene/index/TestForceMergePolicy.java  |    3 +-
 .../apache/lucene/mockfile/TestDisableFsyncFS.java |   16 +-
 .../org/apache/lucene/mockfile/TestExtrasFS.java   |   18 +-
 .../apache/lucene/mockfile/TestHandleLimitFS.java  |   21 +-
 .../lucene/mockfile/TestHandleTrackingFS.java      |   52 +-
 .../org/apache/lucene/mockfile/TestLeakFS.java     |   31 +-
 .../org/apache/lucene/mockfile/TestShuffleFS.java  |   55 +-
 .../org/apache/lucene/mockfile/TestVerboseFS.java  |   72 +-
 .../lucene/mockfile/TestVirusCheckingFS.java       |   11 +-
 .../org/apache/lucene/mockfile/TestWindowsFS.java  |   88 +-
 .../lucene/search/TestBaseExplanationTestCase.java |   66 +-
 .../lucene/store/TestMockDirectoryWrapper.java     |   35 +-
 .../src/test/org/apache/lucene/util/SorePoint.java |    7 +-
 .../lucene/util/TestBeforeAfterOverrides.java      |   18 +-
 .../org/apache/lucene/util/TestCodecReported.java  |    5 +-
 .../util/TestExceptionInBeforeClassHooks.java      |   83 +-
 .../org/apache/lucene/util/TestExpectThrows.java   |  128 +-
 .../lucene/util/TestFailIfDirectoryNotClosed.java  |   10 +-
 .../lucene/util/TestFailIfUnreferencedFiles.java   |   15 +-
 .../org/apache/lucene/util/TestGroupFiltering.java |   12 +-
 .../org/apache/lucene/util/TestJUnitRuleOrder.java |   40 +-
 .../test/org/apache/lucene/util/TestJvmInfo.java   |   28 +-
 .../apache/lucene/util/TestMaxFailuresRule.java    |  137 +-
 .../org/apache/lucene/util/TestPleaseFail.java     |    5 +-
 .../util/TestRamUsageTesterOnWildAnimals.java      |    8 +-
 .../apache/lucene/util/TestReproduceMessage.java   |  122 +-
 .../util/TestReproduceMessageWithRepeated.java     |   10 +-
 .../util/TestRunWithRestrictedPermissions.java     |   17 +-
 .../apache/lucene/util/TestSeedFromUncaught.java   |   22 +-
 .../lucene/util/TestSetupTeardownChaining.java     |   33 +-
 .../org/apache/lucene/util/TestSysoutsLimits.java  |   39 +-
 .../lucene/util/TestWorstCaseTestBehavior.java     |   44 +-
 .../org/apache/lucene/util/WithNestedTests.java    |  154 +-
 1286 files changed, 62335 insertions(+), 49254 deletions(-)


[lucene-solr] 02/02: LUCENE-9570: code reformatting [record rev].

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

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

commit 1bb9755e4acf09677b36fdc0e60a9ea9889ea115
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Tue Jan 5 13:44:39 2021 +0100

    LUCENE-9570: code reformatting [record rev].
---
 .git-blame-ignore-revs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index 91520ff..0fefb99 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -3,3 +3,4 @@
 2d6ad2fee6dfd96388594f4de9b37c037efe8017
 8ef6a0da56878177ff8d6880c92e8f7d0321d076
 7f8b7ffbcad2265b047a5e2195f76cc924028063
+2cbf261032dc8aca56c846971c090c991ac594a6


[lucene-solr] 01/02: LUCENE-9570: code reformatting [final].

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

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

commit 2cbf261032dc8aca56c846971c090c991ac594a6
Author: Dawid Weiss <da...@carrotsearch.com>
AuthorDate: Tue Jan 5 13:44:05 2021 +0100

    LUCENE-9570: code reformatting [final].
---
 gradle/generation/javacc.gradle                    |   17 +-
 gradle/validation/spotless.gradle                  |  107 +-
 lucene/CHANGES.txt                                 |    4 +
 .../java/org/apache/lucene/search/HitQueue.java    |    7 +-
 .../org/apache/lucene/store/NIOFSDirectory.java    |    8 +-
 .../search/grouping/AllGroupHeadsCollector.java    |   84 +-
 .../lucene/search/grouping/AllGroupsCollector.java |   23 +-
 .../search/grouping/BlockGroupingCollector.java    |  193 +-
 .../search/grouping/CollectedSearchGroup.java      |   10 +-
 .../search/grouping/DistinctValuesCollector.java   |   27 +-
 .../apache/lucene/search/grouping/DoubleRange.java |   10 +-
 .../lucene/search/grouping/DoubleRangeFactory.java |   20 +-
 .../search/grouping/DoubleRangeGroupSelector.java  |   16 +-
 .../grouping/FirstPassGroupingCollector.java       |  100 +-
 .../apache/lucene/search/grouping/GroupDocs.java   |   40 +-
 .../search/grouping/GroupFacetCollector.java       |   93 +-
 .../lucene/search/grouping/GroupReducer.java       |   35 +-
 .../lucene/search/grouping/GroupSelector.java      |   39 +-
 .../lucene/search/grouping/GroupingSearch.java     |  135 +-
 .../apache/lucene/search/grouping/LongRange.java   |    9 +-
 .../lucene/search/grouping/LongRangeFactory.java   |   20 +-
 .../search/grouping/LongRangeGroupSelector.java    |   16 +-
 .../apache/lucene/search/grouping/SearchGroup.java |  103 +-
 .../grouping/SecondPassGroupingCollector.java      |   28 +-
 .../search/grouping/TermGroupFacetCollector.java   |  113 +-
 .../lucene/search/grouping/TermGroupSelector.java  |   25 +-
 .../apache/lucene/search/grouping/TopGroups.java   |  176 +-
 .../lucene/search/grouping/TopGroupsCollector.java |  106 +-
 .../search/grouping/ValueSourceGroupSelector.java  |   13 +-
 .../lucene/search/grouping/package-info.java       |  187 +-
 .../search/grouping/AbstractGroupingTestCase.java  |   17 +-
 .../search/grouping/BaseGroupSelectorTestCase.java |  128 +-
 .../grouping/TestAllGroupHeadsCollector.java       |  188 +-
 .../search/grouping/TestAllGroupsCollector.java    |   14 +-
 .../lucene/search/grouping/TestBlockGrouping.java  |   60 +-
 .../grouping/TestDistinctValuesCollector.java      |  176 +-
 .../search/grouping/TestDoubleRangeFactory.java    |    2 -
 .../grouping/TestDoubleRangeGroupSelector.java     |    6 +-
 .../search/grouping/TestGroupFacetCollector.java   |  259 +-
 .../lucene/search/grouping/TestGrouping.java       |  798 ++++--
 .../lucene/search/grouping/TestGroupingSearch.java |   38 +-
 .../search/grouping/TestLongRangeFactory.java      |    2 -
 .../grouping/TestLongRangeGroupSelector.java       |    4 +-
 .../search/grouping/TestTermGroupSelector.java     |    2 +-
 .../lucene/search/grouping/TestTopGroups.java      |  153 +-
 .../grouping/TestValueSourceGroupSelector.java     |    1 -
 .../apache/lucene/luke/app/AbstractHandler.java    |    2 -
 .../apache/lucene/luke/app/DirectoryHandler.java   |    5 +-
 .../apache/lucene/luke/app/DirectoryObserver.java  |    1 -
 .../org/apache/lucene/luke/app/IndexHandler.java   |   18 +-
 .../org/apache/lucene/luke/app/IndexObserver.java  |    1 -
 .../java/org/apache/lucene/luke/app/LukeState.java |    5 +-
 .../java/org/apache/lucene/luke/app/Observer.java  |    3 +-
 .../apache/lucene/luke/app/desktop/LukeMain.java   |   38 +-
 .../lucene/luke/app/desktop/MessageBroker.java     |    1 -
 .../lucene/luke/app/desktop/Preferences.java       |    8 +-
 .../luke/app/desktop/PreferencesFactory.java       |    3 +-
 .../lucene/luke/app/desktop/PreferencesImpl.java   |   14 +-
 .../desktop/components/AnalysisPanelProvider.java  |  185 +-
 .../desktop/components/AnalysisTabOperator.java    |    2 -
 .../desktop/components/CommitsPanelProvider.java   |  204 +-
 .../components/ComponentOperatorRegistry.java      |    4 +-
 .../desktop/components/DocumentsPanelProvider.java |  345 ++-
 .../desktop/components/DocumentsTabOperator.java   |    2 +-
 .../app/desktop/components/LogsPanelProvider.java  |    6 +-
 .../app/desktop/components/LukeWindowProvider.java |   33 +-
 .../app/desktop/components/MenuBarProvider.java    |   45 +-
 .../desktop/components/OverviewPanelProvider.java  |  172 +-
 .../desktop/components/SearchPanelProvider.java    |  344 ++-
 .../app/desktop/components/TabSwitcherProxy.java   |    1 -
 .../app/desktop/components/TabbedPaneProvider.java |   10 +-
 .../app/desktop/components/TableColumnInfo.java    |    1 -
 .../app/desktop/components/TableModelBase.java     |    9 +-
 .../components/dialog/ConfirmDialogFactory.java    |   23 +-
 .../components/dialog/HelpDialogFactory.java       |   15 +-
 .../analysis/AnalysisChainDialogFactory.java       |   50 +-
 .../dialog/analysis/EditFiltersDialogFactory.java  |  140 +-
 .../dialog/analysis/EditFiltersMode.java           |    3 +-
 .../dialog/analysis/EditParamsDialogFactory.java   |  106 +-
 .../components/dialog/analysis/EditParamsMode.java |    4 +-
 .../analysis/TokenAttributeDialogFactory.java      |   40 +-
 .../components/dialog/analysis/package-info.java   |    2 +-
 .../dialog/documents/AddDocumentDialogFactory.java |  254 +-
 .../documents/AddDocumentDialogOperator.java       |    1 -
 .../dialog/documents/DocValuesDialogFactory.java   |   64 +-
 .../documents/IndexOptionsDialogFactory.java       |   27 +-
 .../dialog/documents/StoredValueDialogFactory.java |   34 +-
 .../dialog/documents/TermVectorDialogFactory.java  |   65 +-
 .../components/dialog/documents/package-info.java  |    2 +-
 .../dialog/menubar/AboutDialogFactory.java         |  104 +-
 .../dialog/menubar/CheckIndexDialogFactory.java    |  187 +-
 .../dialog/menubar/CreateIndexDialogFactory.java   |  160 +-
 .../dialog/menubar/ExportTermsDialogFactory.java   |  135 +-
 .../dialog/menubar/OpenIndexDialogFactory.java     |   76 +-
 .../dialog/menubar/OptimizeIndexDialogFactory.java |  101 +-
 .../components/dialog/menubar/package-info.java    |    2 +-
 .../desktop/components/dialog/package-info.java    |    2 +-
 .../dialog/search/ExplainDialogFactory.java        |   38 +-
 .../components/dialog/search/package-info.java     |    2 +-
 .../analysis/CustomAnalyzerPanelOperator.java      |    1 -
 .../analysis/CustomAnalyzerPanelProvider.java      |  267 +-
 .../analysis/PresetAnalyzerPanelOperator.java      |    1 -
 .../analysis/PresetAnalyzerPanelProvider.java      |   20 +-
 .../analysis/SimpleAnalyzeResultPanelOperator.java |    4 +-
 .../analysis/SimpleAnalyzeResultPanelProvider.java |   55 +-
 .../StepByStepAnalyzeResultPanelOperator.java      |    3 +-
 .../StepByStepAnalyzeResultPanelProvider.java      |   99 +-
 .../fragments/analysis/package-info.java           |    2 +-
 .../desktop/components/fragments/package-info.java |    2 +-
 .../fragments/search/AnalyzerPaneProvider.java     |   43 +-
 .../fragments/search/AnalyzerTabOperator.java      |    1 -
 .../fragments/search/FieldValuesPaneProvider.java  |   37 +-
 .../fragments/search/FieldValuesTabOperator.java   |    1 -
 .../fragments/search/MLTPaneProvider.java          |   59 +-
 .../fragments/search/MLTTabOperator.java           |    1 -
 .../fragments/search/QueryParserPaneProvider.java  |  109 +-
 .../fragments/search/QueryParserTabOperator.java   |    2 -
 .../fragments/search/SimilarityPaneProvider.java   |   18 +-
 .../fragments/search/SortPaneProvider.java         |   75 +-
 .../fragments/search/SortTabOperator.java          |    2 -
 .../components/fragments/search/package-info.java  |    2 +-
 .../luke/app/desktop/components/package-info.java  |    2 +-
 .../luke/app/desktop/dto/documents/NewField.java   |    5 +-
 .../app/desktop/dto/documents/package-info.java    |    2 +-
 .../lucene/luke/app/desktop/package-info.java      |    2 +-
 .../lucene/luke/app/desktop/util/DialogOpener.java |   17 +-
 .../luke/app/desktop/util/ExceptionHandler.java    |    2 -
 .../lucene/luke/app/desktop/util/FontUtils.java    |   13 +-
 .../luke/app/desktop/util/HelpHeaderRenderer.java  |   67 +-
 .../lucene/luke/app/desktop/util/ImageUtils.java   |    9 +-
 .../lucene/luke/app/desktop/util/ListUtils.java    |    8 +-
 .../lucene/luke/app/desktop/util/MessageUtils.java |   41 +-
 .../lucene/luke/app/desktop/util/NumericUtils.java |   31 +-
 .../lucene/luke/app/desktop/util/StringUtils.java  |    3 +-
 .../luke/app/desktop/util/StyleConstants.java      |    4 +-
 .../lucene/luke/app/desktop/util/TabUtils.java     |   12 +-
 .../lucene/luke/app/desktop/util/TableUtils.java   |   27 +-
 .../luke/app/desktop/util/TextAreaAppender.java    |   28 +-
 .../luke/app/desktop/util/TextAreaPrintStream.java |    2 +-
 .../lucene/luke/app/desktop/util/URLLabel.java     |   16 +-
 .../luke/app/desktop/util/inifile/IniFile.java     |    1 -
 .../app/desktop/util/inifile/IniFileReader.java    |    1 -
 .../app/desktop/util/inifile/IniFileWriter.java    |    1 -
 .../luke/app/desktop/util/inifile/OptionMap.java   |    1 -
 .../app/desktop/util/inifile/SimpleIniFile.java    |    4 +-
 .../desktop/util/inifile/SimpleIniFileReader.java  |   39 +-
 .../app/desktop/util/inifile/package-info.java     |    2 +-
 .../luke/app/desktop/util/lang/package-info.java   |    2 +-
 .../lucene/luke/app/desktop/util/package-info.java |    2 +-
 .../org/apache/lucene/luke/app/package-info.java   |    2 +-
 .../apache/lucene/luke/models/LukeException.java   |    1 -
 .../org/apache/lucene/luke/models/LukeModel.java   |    7 +-
 .../lucene/luke/models/analysis/Analysis.java      |   70 +-
 .../luke/models/analysis/AnalysisFactory.java      |    1 -
 .../lucene/luke/models/analysis/AnalysisImpl.java  |   84 +-
 .../luke/models/analysis/CustomAnalyzerConfig.java |   20 +-
 .../lucene/luke/models/analysis/package-info.java  |    2 +-
 .../apache/lucene/luke/models/commits/Commit.java  |    8 +-
 .../apache/lucene/luke/models/commits/Commits.java |   12 +-
 .../lucene/luke/models/commits/CommitsFactory.java |    1 -
 .../lucene/luke/models/commits/CommitsImpl.java    |   39 +-
 .../apache/lucene/luke/models/commits/File.java    |    7 +-
 .../apache/lucene/luke/models/commits/Segment.java |    8 +-
 .../lucene/luke/models/commits/package-info.java   |    2 +-
 .../lucene/luke/models/documents/DocValues.java    |   35 +-
 .../luke/models/documents/DocValuesAdapter.java    |   58 +-
 .../luke/models/documents/DocumentField.java       |   38 +-
 .../lucene/luke/models/documents/Documents.java    |   58 +-
 .../luke/models/documents/DocumentsFactory.java    |    1 -
 .../luke/models/documents/DocumentsImpl.java       |   48 +-
 .../lucene/luke/models/documents/TermPosting.java  |   24 +-
 .../luke/models/documents/TermVectorEntry.java     |   70 +-
 .../luke/models/documents/TermVectorsAdapter.java  |   10 +-
 .../lucene/luke/models/documents/package-info.java |    2 +-
 .../lucene/luke/models/overview/Overview.java      |   57 +-
 .../luke/models/overview/OverviewFactory.java      |    1 -
 .../lucene/luke/models/overview/OverviewImpl.java  |   18 +-
 .../lucene/luke/models/overview/TermCounts.java    |   17 +-
 .../luke/models/overview/TermCountsOrder.java      |   20 +-
 .../lucene/luke/models/overview/TermStats.java     |   34 +-
 .../lucene/luke/models/overview/TopTerms.java      |   13 +-
 .../lucene/luke/models/overview/package-info.java  |    2 +-
 .../apache/lucene/luke/models/package-info.java    |    2 +-
 .../lucene/luke/models/search/MLTConfig.java       |    6 +-
 .../luke/models/search/QueryParserConfig.java      |   63 +-
 .../apache/lucene/luke/models/search/Search.java   |   47 +-
 .../lucene/luke/models/search/SearchFactory.java   |    1 -
 .../lucene/luke/models/search/SearchImpl.java      |  114 +-
 .../lucene/luke/models/search/SearchResults.java   |   58 +-
 .../luke/models/search/SimilarityConfig.java       |   26 +-
 .../lucene/luke/models/search/package-info.java    |    2 +-
 .../lucene/luke/models/tools/IndexTools.java       |   15 +-
 .../luke/models/tools/IndexToolsFactory.java       |    1 -
 .../lucene/luke/models/tools/IndexToolsImpl.java   |   23 +-
 .../lucene/luke/models/tools/package-info.java     |    2 +-
 .../apache/lucene/luke/models/util/IndexUtils.java |   93 +-
 .../lucene/luke/models/util/package-info.java      |    2 +-
 .../luke/models/util/twentynewsgroups/Message.java |    8 +-
 .../util/twentynewsgroups/MessageFilesParser.java  |   12 +-
 .../models/util/twentynewsgroups/package-info.java |    2 +-
 .../java/org/apache/lucene/luke/package-info.java  |    2 +-
 .../org/apache/lucene/luke/util/BytesRefUtils.java |    7 +-
 .../org/apache/lucene/luke/util/LoggerFactory.java |   37 +-
 .../org/apache/lucene/luke/util/package-info.java  |    2 +-
 .../lucene/luke/util/reflection/ClassScanner.java  |   10 +-
 .../luke/util/reflection/SubtypeCollector.java     |    8 +-
 .../lucene/luke/util/reflection/package-info.java  |    2 +-
 .../desktop/util/inifile/SimpleIniFileTest.java    |    1 -
 .../luke/models/analysis/AnalysisImplTest.java     |   60 +-
 .../luke/models/commits/CommitsImplTest.java       |   10 +-
 .../models/documents/DocValuesAdapterTest.java     |   16 +-
 .../luke/models/documents/DocumentsImplTest.java   |    7 +-
 .../luke/models/documents/DocumentsTestBase.java   |   34 +-
 .../models/documents/TermVectorsAdapterTest.java   |    4 +-
 .../luke/models/overview/OverviewImplTest.java     |    8 +-
 .../luke/models/overview/OverviewTestBase.java     |    4 +-
 .../luke/models/overview/TermCountsTest.java       |    4 +-
 .../lucene/luke/models/overview/TopTermsTest.java  |    2 -
 .../lucene/luke/models/search/SearchImplTest.java  |  111 +-
 .../apache/lucene/misc/CollectorMemoryTracker.java |    5 +-
 .../java/org/apache/lucene/misc/GetTermInfo.java   |   38 +-
 .../java/org/apache/lucene/misc/HighFreqTerms.java |   88 +-
 .../org/apache/lucene/misc/IndexMergeTool.java     |   42 +-
 .../apache/lucene/misc/SweetSpotSimilarity.java    |  165 +-
 .../src/java/org/apache/lucene/misc/TermStats.java |   18 +-
 .../apache/lucene/misc/document/LazyDocument.java  |   63 +-
 .../apache/lucene/misc/document/package-info.java  |    2 +-
 .../apache/lucene/misc/index/IndexSplitter.java    |   65 +-
 .../lucene/misc/index/MultiPassIndexSplitter.java  |   71 +-
 .../apache/lucene/misc/index/PKIndexSplitter.java  |   82 +-
 .../org/apache/lucene/misc/index/package-info.java |    2 +-
 .../java/org/apache/lucene/misc/package-info.java  |    4 +-
 .../misc/search/DiversifiedTopDocsCollector.java   |   81 +-
 .../apache/lucene/misc/search/DocValuesStats.java  |   43 +-
 .../misc/search/DocValuesStatsCollector.java       |   15 +-
 .../search/MemoryAccountingBitsetCollector.java    |    1 -
 .../apache/lucene/misc/search/package-info.java    |    2 +-
 .../search/similarity/LegacyBM25Similarity.java    |   31 +-
 .../misc/search/similarity/package-info.java       |    2 +-
 .../misc/store/HardlinkCopyDirectoryWrapper.java   |   78 +-
 .../apache/lucene/misc/store/NativePosixUtil.java  |   33 +-
 .../lucene/misc/store/NativeUnixDirectory.java     |  180 +-
 .../org/apache/lucene/misc/store/RAFDirectory.java |   95 +-
 .../apache/lucene/misc/store/WindowsDirectory.java |   66 +-
 .../org/apache/lucene/misc/store/package-info.java |    2 +-
 .../org/apache/lucene/misc/util/MemoryTracker.java |    5 +-
 .../apache/lucene/misc/util/fst/ListOfOutputs.java |   66 +-
 .../misc/util/fst/UpToTwoPositiveIntOutputs.java   |   48 +-
 .../apache/lucene/misc/util/fst/package-info.java  |    2 +-
 .../org/apache/lucene/misc/util/package-info.java  |    5 +-
 .../lucene/misc/SweetSpotSimilarityTest.java       |  199 +-
 .../org/apache/lucene/misc/TestHighFreqTerms.java  |  183 +-
 .../org/apache/lucene/misc/TestIndexMergeTool.java |   40 +-
 .../lucene/misc/document/TestLazyDocument.java     |   80 +-
 .../lucene/misc/index/TestIndexSplitter.java       |   31 +-
 .../misc/index/TestMultiPassIndexSplitter.java     |   44 +-
 .../lucene/misc/index/TestPKIndexSplitter.java     |   67 +-
 .../search/TestDiversifiedTopDocsCollector.java    |  298 +--
 .../misc/search/TestDocValuesStatsCollector.java   |   47 +-
 .../TestMemoryAccountingBitsetCollector.java       |   14 +-
 .../similarity/TestLegacyBM25Similarity.java       |   64 +-
 .../lucene/misc/store/NativeLibEnableRule.java     |    9 +-
 .../lucene/misc/store/NativeUnixDirectoryTest.java |   20 +-
 .../store/TestHardLinkCopyDirectoryWrapper.java    |   30 +-
 .../apache/lucene/misc/store/TestRAFDirectory.java |   12 +-
 .../lucene/misc/store/WindowsDirectoryTest.java    |   11 +-
 .../misc/util/TestCollectorMemoryTracker.java      |   22 +-
 .../apache/lucene/misc/util/fst/TestFSTsMisc.java  |   31 +-
 .../apache/lucene/monitor/CandidateMatcher.java    |   60 +-
 .../apache/lucene/monitor/CollectingMatcher.java   |    9 +-
 .../lucene/monitor/ConcurrentQueryLoader.java      |   59 +-
 .../apache/lucene/monitor/CustomQueryHandler.java  |   15 +-
 .../org/apache/lucene/monitor/DocumentBatch.java   |   11 +-
 .../org/apache/lucene/monitor/ExplainingMatch.java |   54 +-
 .../lucene/monitor/ForceNoBulkScoringQuery.java    |   12 +-
 .../org/apache/lucene/monitor/HighlightsMatch.java |  144 +-
 .../org/apache/lucene/monitor/MatcherFactory.java  |    5 +-
 .../org/apache/lucene/monitor/MatchingQueries.java |   33 +-
 .../java/org/apache/lucene/monitor/Monitor.java    |  159 +-
 .../lucene/monitor/MonitorConfiguration.java       |   30 +-
 .../org/apache/lucene/monitor/MonitorQuery.java    |   44 +-
 .../lucene/monitor/MonitorQuerySerializer.java     |   22 +-
 .../lucene/monitor/MonitorUpdateListener.java      |   40 +-
 .../lucene/monitor/MultiMatchingQueries.java       |   37 +-
 .../monitor/MultipassTermFilteredPresearcher.java  |   77 +-
 .../org/apache/lucene/monitor/ParallelMatcher.java |   64 +-
 .../apache/lucene/monitor/PartitionMatcher.java    |   58 +-
 .../org/apache/lucene/monitor/Presearcher.java     |   41 +-
 .../apache/lucene/monitor/PresearcherMatch.java    |   12 +-
 .../apache/lucene/monitor/PresearcherMatches.java  |   12 +-
 .../org/apache/lucene/monitor/QueryAnalyzer.java   |   41 +-
 .../org/apache/lucene/monitor/QueryCacheEntry.java |   21 +-
 .../org/apache/lucene/monitor/QueryDecomposer.java |   24 +-
 .../java/org/apache/lucene/monitor/QueryIndex.java |   86 +-
 .../java/org/apache/lucene/monitor/QueryMatch.java |   30 +-
 .../apache/lucene/monitor/QueryTimeListener.java   |   20 +-
 .../java/org/apache/lucene/monitor/QueryTree.java  |   77 +-
 .../apache/lucene/monitor/RegexpQueryHandler.java  |   44 +-
 .../org/apache/lucene/monitor/ScoringMatch.java    |   15 +-
 .../java/org/apache/lucene/monitor/SlowLog.java    |   22 +-
 .../lucene/monitor/SuffixingNGramTokenFilter.java  |   29 +-
 .../lucene/monitor/TermFilteredPresearcher.java    |  126 +-
 .../org/apache/lucene/monitor/TermWeightor.java    |   48 +-
 .../lucene/monitor/TermsEnumTokenStream.java       |    8 +-
 .../org/apache/lucene/monitor/package-info.java    |  135 +-
 .../lucene/monitor/ConcurrentMatcherTestBase.java  |   23 +-
 .../FieldFilterPresearcherComponentTestBase.java   |   22 +-
 .../org/apache/lucene/monitor/MonitorTestBase.java |    1 -
 .../apache/lucene/monitor/PresearcherTestBase.java |   51 +-
 .../monitor/TestBooleanClauseWeightings.java       |   36 +-
 .../lucene/monitor/TestBooleanTermExtractor.java   |   16 +-
 .../apache/lucene/monitor/TestCachePurging.java    |   76 +-
 .../lucene/monitor/TestConcurrentQueryLoader.java  |    1 -
 .../apache/lucene/monitor/TestDocumentBatch.java   |   17 +-
 .../lucene/monitor/TestExplainingMatcher.java      |    4 +-
 .../org/apache/lucene/monitor/TestExtractors.java  |   26 +-
 .../TestFieldFilteredMultipassPresearcher.java     |    4 +-
 .../monitor/TestFieldTermFilteredPresearcher.java  |    3 +-
 .../monitor/TestForceNoBulkScoringQuery.java       |   11 +-
 .../lucene/monitor/TestHighlightingMatcher.java    |  319 +--
 .../lucene/monitor/TestMatchAllPresearcher.java    |    1 -
 .../org/apache/lucene/monitor/TestMonitor.java     |  105 +-
 .../lucene/monitor/TestMonitorErrorHandling.java   |   15 +-
 .../lucene/monitor/TestMonitorPersistence.java     |   29 +-
 .../lucene/monitor/TestMultipassPresearcher.java   |   67 +-
 .../apache/lucene/monitor/TestParallelMatcher.java |    3 +-
 .../lucene/monitor/TestPartitionMatcher.java       |    4 +-
 .../monitor/TestPresearcherMatchCollector.java     |    6 +-
 .../apache/lucene/monitor/TestQueryAnalyzer.java   |   74 +-
 .../apache/lucene/monitor/TestQueryDecomposer.java |   44 +-
 .../lucene/monitor/TestQueryTermComparators.java   |   17 +-
 .../apache/lucene/monitor/TestQueryTermFilter.java |   12 +-
 .../lucene/monitor/TestRegexpQueryHandler.java     |   68 +-
 .../apache/lucene/monitor/TestSimilarities.java    |   19 +-
 .../apache/lucene/monitor/TestSimpleMatcher.java   |    4 +-
 .../apache/lucene/monitor/TestSpanExtractors.java  |   66 +-
 .../monitor/TestSuffixingNGramTokenizer.java       |   61 +-
 .../apache/lucene/monitor/TestTermPresearcher.java |   62 +-
 .../lucene/monitor/TestTermsEnumTokenFilter.java   |   23 +-
 .../monitor/TestWildcardTermPresearcher.java       |   36 +-
 .../lucene/queryparser/charstream/CharStream.java  |   77 +-
 .../queryparser/charstream/FastCharStream.java     |   43 +-
 .../queryparser/charstream/package-info.java       |    4 +-
 .../queryparser/classic/MultiFieldQueryParser.java |  193 +-
 .../queryparser/classic/QueryParserBase.java       |  542 ++--
 .../lucene/queryparser/classic/package-info.java   |  481 ++--
 .../complexPhrase/ComplexPhraseQueryParser.java    |  157 +-
 .../queryparser/complexPhrase/package-info.java    |    7 +-
 .../queryparser/ext/ExtendableQueryParser.java     |  102 +-
 .../lucene/queryparser/ext/ExtensionQuery.java     |   23 +-
 .../apache/lucene/queryparser/ext/Extensions.java  |  184 +-
 .../lucene/queryparser/ext/ParserExtension.java    |   35 +-
 .../lucene/queryparser/ext/package-info.java       |    8 +-
 .../queryparser/flexible/core/QueryNodeError.java  |   23 +-
 .../flexible/core/QueryNodeException.java          |   20 +-
 .../flexible/core/QueryNodeParseException.java     |   46 +-
 .../flexible/core/QueryParserHelper.java           |  163 +-
 .../flexible/core/builders/QueryBuilder.java       |   12 +-
 .../flexible/core/builders/QueryTreeBuilder.java   |   99 +-
 .../flexible/core/builders/package-info.java       |   16 +-
 .../flexible/core/config/AbstractQueryConfig.java  |   58 +-
 .../flexible/core/config/ConfigurationKey.java     |   17 +-
 .../flexible/core/config/FieldConfig.java          |   19 +-
 .../flexible/core/config/FieldConfigListener.java  |   14 +-
 .../flexible/core/config/QueryConfigHandler.java   |   54 +-
 .../flexible/core/config/package-info.java         |   28 +-
 .../core/messages/QueryParserMessages.java         |    5 +-
 .../flexible/core/messages/package-info.java       |    9 +-
 .../flexible/core/nodes/AndQueryNode.java          |   31 +-
 .../flexible/core/nodes/AnyQueryNode.java          |   49 +-
 .../flexible/core/nodes/BooleanQueryNode.java      |   28 +-
 .../flexible/core/nodes/BoostQueryNode.java        |   48 +-
 .../flexible/core/nodes/DeletedQueryNode.java      |    8 +-
 .../flexible/core/nodes/FieldQueryNode.java        |   89 +-
 .../core/nodes/FieldValuePairQueryNode.java        |   12 +-
 .../flexible/core/nodes/FieldableNode.java         |   19 +-
 .../flexible/core/nodes/FuzzyQueryNode.java        |   43 +-
 .../flexible/core/nodes/GroupQueryNode.java        |   24 +-
 .../flexible/core/nodes/MatchAllDocsQueryNode.java |    4 +-
 .../flexible/core/nodes/MatchNoDocsQueryNode.java  |    6 +-
 .../flexible/core/nodes/ModifierQueryNode.java     |   92 +-
 .../flexible/core/nodes/NoTokenFoundQueryNode.java |    4 +-
 .../flexible/core/nodes/OpaqueQueryNode.java       |   22 +-
 .../flexible/core/nodes/OrQueryNode.java           |   30 +-
 .../flexible/core/nodes/PathQueryNode.java         |   87 +-
 .../flexible/core/nodes/PhraseSlopQueryNode.java   |   40 +-
 .../flexible/core/nodes/ProximityQueryNode.java    |  140 +-
 .../queryparser/flexible/core/nodes/QueryNode.java |   47 +-
 .../flexible/core/nodes/QueryNodeImpl.java         |   68 +-
 .../flexible/core/nodes/QuotedFieldQueryNode.java  |   32 +-
 .../flexible/core/nodes/RangeQueryNode.java        |   15 +-
 .../flexible/core/nodes/SlopQueryNode.java         |   46 +-
 .../flexible/core/nodes/TextableQueryNode.java     |    5 +-
 .../core/nodes/TokenizedPhraseQueryNode.java       |   18 +-
 .../flexible/core/nodes/ValueQueryNode.java        |   10 +-
 .../flexible/core/nodes/package-info.java          |  108 +-
 .../queryparser/flexible/core/package-info.java    |   54 +-
 .../flexible/core/parser/EscapeQuerySyntax.java    |   20 +-
 .../flexible/core/parser/SyntaxParser.java         |   13 +-
 .../flexible/core/parser/package-info.java         |   29 +-
 .../NoChildOptimizationQueryNodeProcessor.java     |   31 +-
 .../core/processors/QueryNodeProcessor.java        |   52 +-
 .../core/processors/QueryNodeProcessorImpl.java    |  119 +-
 .../processors/QueryNodeProcessorPipeline.java     |  160 +-
 .../RemoveDeletedQueryNodesProcessor.java          |   27 +-
 .../flexible/core/processors/package-info.java     |   48 +-
 .../flexible/core/util/QueryNodeOperation.java     |   86 +-
 .../flexible/core/util/StringUtils.java            |   12 +-
 .../flexible/core/util/UnescapedCharSequence.java  |   45 +-
 .../flexible/core/util/package-info.java           |   10 +-
 .../queryparser/flexible/messages/Message.java     |    5 +-
 .../queryparser/flexible/messages/MessageImpl.java |    6 +-
 .../lucene/queryparser/flexible/messages/NLS.java  |   69 +-
 .../flexible/messages/NLSException.java            |   14 +-
 .../flexible/messages/package-info.java            |   73 +-
 .../flexible/precedence/PrecedenceQueryParser.java |   36 +-
 .../flexible/precedence/package-info.java          |   22 +-
 .../BooleanModifiersQueryNodeProcessor.java        |   45 +-
 .../PrecedenceQueryNodeProcessorPipeline.java      |   32 +-
 .../precedence/processors/package-info.java        |   38 +-
 .../standard/CommonQueryParserConfiguration.java   |  133 +-
 .../flexible/standard/QueryParserUtil.java         |  119 +-
 .../flexible/standard/StandardQueryParser.java     |  347 ++-
 .../standard/builders/AnyQueryNodeBuilder.java     |   22 +-
 .../standard/builders/BooleanQueryNodeBuilder.java |   48 +-
 .../standard/builders/BoostQueryNodeBuilder.java   |   12 +-
 .../standard/builders/DummyQueryNodeBuilder.java   |   15 +-
 .../standard/builders/FieldQueryNodeBuilder.java   |    9 +-
 .../standard/builders/FuzzyQueryNodeBuilder.java   |   19 +-
 .../standard/builders/GroupQueryNodeBuilder.java   |   10 +-
 .../builders/MatchAllDocsQueryNodeBuilder.java     |   18 +-
 .../builders/MatchNoDocsQueryNodeBuilder.java      |   16 +-
 .../builders/ModifierQueryNodeBuilder.java         |   10 +-
 .../builders/MultiPhraseQueryNodeBuilder.java      |   18 +-
 .../standard/builders/PhraseQueryNodeBuilder.java  |   12 +-
 .../builders/PointRangeQueryNodeBuilder.java       |   29 +-
 .../builders/PrefixWildcardQueryNodeBuilder.java   |   18 +-
 .../standard/builders/RegexpQueryNodeBuilder.java  |   13 +-
 .../standard/builders/SlopQueryNodeBuilder.java    |   19 +-
 .../standard/builders/StandardQueryBuilder.java    |    7 +-
 .../builders/StandardQueryTreeBuilder.java         |   24 +-
 .../builders/TermRangeQueryNodeBuilder.java        |   38 +-
 .../builders/WildcardQueryNodeBuilder.java         |   18 +-
 .../flexible/standard/builders/package-info.java   |   23 +-
 .../standard/config/FieldBoostMapFCListener.java   |   18 +-
 .../config/FieldDateResolutionFCListener.java      |   20 +-
 .../flexible/standard/config/FuzzyConfig.java      |    9 +-
 .../flexible/standard/config/NumberDateFormat.java |   34 +-
 .../flexible/standard/config/PointsConfig.java     |   67 +-
 .../standard/config/PointsConfigListener.java      |   28 +-
 .../config/StandardQueryConfigHandler.java         |  149 +-
 .../flexible/standard/config/package-info.java     |   20 +-
 .../standard/nodes/AbstractRangeQueryNode.java     |  115 +-
 .../standard/nodes/BooleanModifierNode.java        |    9 +-
 .../standard/nodes/MultiPhraseQueryNode.java       |   20 +-
 .../flexible/standard/nodes/PointQueryNode.java    |   78 +-
 .../standard/nodes/PointRangeQueryNode.java        |   98 +-
 .../standard/nodes/PrefixWildcardQueryNode.java    |   25 +-
 .../flexible/standard/nodes/RegexpQueryNode.java   |   32 +-
 .../flexible/standard/nodes/SynonymQueryNode.java  |    1 -
 .../standard/nodes/TermRangeQueryNode.java         |   25 +-
 .../flexible/standard/nodes/WildcardQueryNode.java |   20 +-
 .../flexible/standard/nodes/package-info.java      |   13 +-
 .../flexible/standard/package-info.java            |   31 +-
 .../standard/parser/EscapeQuerySyntaxImpl.java     |  131 +-
 .../flexible/standard/parser/package-info.java     |   17 +-
 .../processors/AllowLeadingWildcardProcessor.java  |   42 +-
 .../processors/AnalyzerQueryNodeProcessor.java     |  153 +-
 .../BooleanQuery2ModifierNodeProcessor.java        |  112 +-
 ...nSingleChildOptimizationQueryNodeProcessor.java |   25 +-
 .../processors/BoostQueryNodeProcessor.java        |   25 +-
 .../DefaultPhraseSlopQueryNodeProcessor.java       |   34 +-
 .../processors/FuzzyQueryNodeProcessor.java        |   28 +-
 .../processors/MatchAllDocsQueryNodeProcessor.java |   19 +-
 .../processors/MultiFieldQueryNodeProcessor.java   |   26 +-
 .../MultiTermRewriteMethodProcessor.java           |   17 +-
 .../processors/OpenRangeQueryNodeProcessor.java    |   42 +-
 .../processors/PhraseSlopQueryNodeProcessor.java   |   17 +-
 .../processors/PointQueryNodeProcessor.java        |   92 +-
 .../processors/PointRangeQueryNodeProcessor.java   |   56 +-
 .../processors/RegexpQueryNodeProcessor.java       |    5 +-
 .../RemoveEmptyNonLeafQueryNodeProcessor.java      |   28 +-
 .../StandardQueryNodeProcessorPipeline.java        |   25 +-
 .../processors/TermRangeQueryNodeProcessor.java    |   85 +-
 .../processors/WildcardQueryNodeProcessor.java     |   85 +-
 .../flexible/standard/processors/package-info.java |   18 +-
 .../queryparser/simple/SimpleQueryParser.java      |  200 +-
 .../lucene/queryparser/simple/package-info.java    |    6 +-
 .../queryparser/surround/parser/package-info.java  |    9 +-
 .../queryparser/surround/query/AndQuery.java       |   18 +-
 .../surround/query/BasicQueryFactory.java          |   46 +-
 .../queryparser/surround/query/ComposedQuery.java  |   68 +-
 .../queryparser/surround/query/DistanceQuery.java  |   59 +-
 .../surround/query/DistanceRewriteQuery.java       |    7 +-
 .../surround/query/DistanceSubQuery.java           |   18 +-
 .../queryparser/surround/query/FieldsQuery.java    |   51 +-
 .../queryparser/surround/query/NotQuery.java       |   30 +-
 .../lucene/queryparser/surround/query/OrQuery.java |   27 +-
 .../queryparser/surround/query/RewriteQuery.java   |   37 +-
 .../queryparser/surround/query/SimpleTerm.java     |   87 +-
 .../surround/query/SimpleTermRewriteQuery.java     |   35 +-
 .../surround/query/SpanNearClauseFactory.java      |   97 +-
 .../surround/query/SrndBooleanQuery.java           |   18 +-
 .../surround/query/SrndPrefixQuery.java            |   51 +-
 .../queryparser/surround/query/SrndQuery.java      |   75 +-
 .../queryparser/surround/query/SrndTermQuery.java  |   34 +-
 .../queryparser/surround/query/SrndTruncQuery.java |   59 +-
 .../surround/query/TooManyBasicQueries.java        |   12 +-
 .../queryparser/surround/query/package-info.java   |   21 +-
 .../apache/lucene/queryparser/xml/CoreParser.java  |   58 +-
 .../queryparser/xml/CorePlusExtensionsParser.java  |   10 +-
 .../queryparser/xml/CorePlusQueriesParser.java     |    9 +-
 .../apache/lucene/queryparser/xml/DOMUtils.java    |   74 +-
 .../lucene/queryparser/xml/ParserException.java    |    5 +-
 .../lucene/queryparser/xml/QueryBuilder.java       |    4 +-
 .../queryparser/xml/QueryBuilderFactory.java       |    8 +-
 .../xml/builders/BooleanQueryBuilder.java          |   15 +-
 .../xml/builders/BoostingTermBuilder.java          |   14 +-
 .../xml/builders/ConstantScoreQueryBuilder.java    |    6 +-
 .../xml/builders/DisjunctionMaxQueryBuilder.java   |   12 +-
 .../xml/builders/FuzzyLikeThisQueryBuilder.java    |    8 +-
 .../xml/builders/LikeThisQueryBuilder.java         |   41 +-
 .../xml/builders/MatchAllDocsQueryBuilder.java     |   11 +-
 .../xml/builders/PointRangeQueryBuilder.java       |   22 +-
 .../xml/builders/RangeQueryBuilder.java            |    8 +-
 .../queryparser/xml/builders/SpanBuilderBase.java  |   10 +-
 .../queryparser/xml/builders/SpanFirstBuilder.java |   10 +-
 .../queryparser/xml/builders/SpanNearBuilder.java  |   13 +-
 .../queryparser/xml/builders/SpanNotBuilder.java   |   10 +-
 .../queryparser/xml/builders/SpanOrBuilder.java    |   13 +-
 .../xml/builders/SpanOrTermsBuilder.java           |   22 +-
 .../xml/builders/SpanPositionRangeBuilder.java     |    5 +-
 .../queryparser/xml/builders/SpanQueryBuilder.java |    7 +-
 .../xml/builders/SpanQueryBuilderFactory.java      |   11 +-
 .../queryparser/xml/builders/SpanTermBuilder.java  |   10 +-
 .../queryparser/xml/builders/TermQueryBuilder.java |   12 +-
 .../xml/builders/TermsQueryBuilder.java            |   13 +-
 .../xml/builders/UserInputQueryBuilder.java        |   20 +-
 .../queryparser/xml/builders/package-info.java     |    7 +-
 .../lucene/queryparser/xml/package-info.java       |    7 +-
 .../queryparser/classic/TestMultiAnalyzer.java     |  138 +-
 .../classic/TestMultiFieldQueryParser.java         |  188 +-
 .../classic/TestMultiPhraseQueryParsing.java       |   41 +-
 .../queryparser/classic/TestQueryParser.java       |  535 ++--
 .../complexPhrase/TestComplexPhraseQuery.java      |   84 +-
 .../lucene/queryparser/ext/ExtensionStub.java      |    4 +-
 .../queryparser/ext/TestExtendableQueryParser.java |   64 +-
 .../lucene/queryparser/ext/TestExtensions.java     |   21 +-
 .../core/builders/TestQueryTreeBuilder.java        |   24 +-
 .../flexible/core/nodes/TestQueryNode.java         |   17 +-
 .../queryparser/flexible/messages/TestNLS.java     |   68 +-
 .../precedence/TestPrecedenceQueryParser.java      |  180 +-
 .../flexible/spans/SpanOrQueryNodeBuilder.java     |    7 +-
 .../flexible/spans/SpanTermQueryNodeBuilder.java   |   11 +-
 .../flexible/spans/SpansQueryConfigHandler.java    |    9 +-
 .../flexible/spans/SpansQueryTreeBuilder.java      |   10 +-
 .../spans/SpansValidatorQueryNodeProcessor.java    |   29 +-
 .../flexible/spans/TestSpanQueryParser.java        |  152 +-
 .../spans/TestSpanQueryParserSimpleSample.java     |   67 +-
 .../flexible/spans/UniqueFieldAttribute.java       |    7 +-
 .../flexible/spans/UniqueFieldAttributeImpl.java   |   17 +-
 .../spans/UniqueFieldQueryNodeProcessor.java       |   20 +-
 .../standard/TestMultiAnalyzerQPHelper.java        |   96 +-
 .../flexible/standard/TestMultiFieldQPHelper.java  |  168 +-
 .../flexible/standard/TestPointQueryParser.java    |   71 +-
 .../flexible/standard/TestQPHelper.java            |  458 ++--
 .../flexible/standard/TestStandardQP.java          |  109 +-
 .../queryparser/simple/TestSimpleQueryParser.java  |   70 +-
 .../surround/query/BooleanQueryTst.java            |   27 +-
 .../surround/query/ExceptionQueryTst.java          |   17 +-
 .../surround/query/SingleFieldTestDb.java          |   27 +-
 .../queryparser/surround/query/SrndQueryTest.java  |   11 +-
 .../surround/query/Test01Exceptions.java           |    4 -
 .../queryparser/surround/query/Test02Boolean.java  |  101 +-
 .../queryparser/surround/query/Test03Distance.java |  203 +-
 .../queryparser/util/QueryParserTestBase.java      |  759 +++---
 .../queryparser/xml/CoreParserTestIndexData.java   |   20 +-
 .../lucene/queryparser/xml/TestCoreParser.java     |   75 +-
 .../xml/TestCorePlusExtensionsParser.java          |    3 +-
 .../queryparser/xml/TestCorePlusQueriesParser.java |    1 -
 .../IndexAndTaxonomyReplicationHandler.java        |  104 +-
 .../replicator/IndexAndTaxonomyRevision.java       |  120 +-
 .../lucene/replicator/IndexInputInputStream.java   |   26 +-
 .../lucene/replicator/IndexReplicationHandler.java |  166 +-
 .../apache/lucene/replicator/IndexRevision.java    |   69 +-
 .../apache/lucene/replicator/LocalReplicator.java  |  117 +-
 .../replicator/PerSessionDirectoryFactory.java     |   17 +-
 .../lucene/replicator/ReplicationClient.java       |  213 +-
 .../org/apache/lucene/replicator/Replicator.java   |   75 +-
 .../org/apache/lucene/replicator/Revision.java     |   55 +-
 .../org/apache/lucene/replicator/RevisionFile.java |   20 +-
 .../lucene/replicator/SessionExpiredException.java |   25 +-
 .../org/apache/lucene/replicator/SessionToken.java |   40 +-
 .../lucene/replicator/http/HttpClientBase.java     |  140 +-
 .../lucene/replicator/http/HttpReplicator.java     |   97 +-
 .../lucene/replicator/http/ReplicationService.java |   96 +-
 .../lucene/replicator/http/package-info.java       |    8 +-
 .../org/apache/lucene/replicator/nrt/CopyJob.java  |   99 +-
 .../apache/lucene/replicator/nrt/CopyOneFile.java  |   53 +-
 .../apache/lucene/replicator/nrt/CopyState.java    |   21 +-
 .../apache/lucene/replicator/nrt/FileMetaData.java |   12 +-
 .../org/apache/lucene/replicator/nrt/Node.java     |  130 +-
 .../replicator/nrt/NodeCommunicationException.java |    4 +-
 .../replicator/nrt/PreCopyMergedSegmentWarmer.java |   25 +-
 .../apache/lucene/replicator/nrt/PrimaryNode.java  |  133 +-
 .../lucene/replicator/nrt/ReplicaFileDeleter.java  |   39 +-
 .../apache/lucene/replicator/nrt/ReplicaNode.java  |  477 ++--
 .../nrt/SegmentInfosSearcherManager.java           |   45 +-
 .../apache/lucene/replicator/nrt/package-info.java |    6 +-
 .../org/apache/lucene/replicator/package-info.java |   61 +-
 .../lucene/replicator/ReplicatorTestCase.java      |   73 +-
 .../TestIndexAndTaxonomyReplicationClient.java     |  354 +--
 .../replicator/TestIndexAndTaxonomyRevision.java   |   38 +-
 .../replicator/TestIndexReplicationClient.java     |  270 +-
 .../lucene/replicator/TestIndexRevision.java       |   30 +-
 .../lucene/replicator/TestLocalReplicator.java     |  100 +-
 .../apache/lucene/replicator/TestSessionToken.java |    6 +-
 .../lucene/replicator/http/ReplicationServlet.java |   11 +-
 .../lucene/replicator/http/TestHttpReplicator.java |   62 +-
 .../org/apache/lucene/replicator/nrt/Jobs.java     |   18 +-
 .../apache/lucene/replicator/nrt/NodeProcess.java  |   31 +-
 .../lucene/replicator/nrt/SimpleCopyJob.java       |  108 +-
 .../lucene/replicator/nrt/SimplePrimaryNode.java   |  437 ++--
 .../lucene/replicator/nrt/SimpleReplicaNode.java   |  357 +--
 .../apache/lucene/replicator/nrt/SimpleServer.java |  159 +-
 .../lucene/replicator/nrt/SimpleTransLog.java      |   93 +-
 .../lucene/replicator/nrt/TestNRTReplication.java  |  189 +-
 .../replicator/nrt/TestStressNRTReplication.java   |  512 ++--
 .../apache/lucene/replicator/nrt/ThreadPumper.java |   62 +-
 .../lucene/payloads/PayloadSpanCollector.java      |   18 +-
 .../apache/lucene/payloads/PayloadSpanUtil.java    |   39 +-
 .../org/apache/lucene/payloads/package-info.java   |    4 +-
 .../codecs/idversion/IDVersionPostingsFormat.java  |   90 +-
 .../codecs/idversion/IDVersionPostingsReader.java  |   34 +-
 .../codecs/idversion/IDVersionPostingsWriter.java  |   55 +-
 .../idversion/IDVersionSegmentTermsEnum.java       |  547 ++--
 .../idversion/IDVersionSegmentTermsEnumFrame.java  |  159 +-
 .../sandbox/codecs/idversion/SingleDocsEnum.java   |    3 +-
 .../codecs/idversion/SinglePostingsEnum.java       |    2 +-
 .../idversion/VersionBlockTreeTermsReader.java     |  126 +-
 .../idversion/VersionBlockTreeTermsWriter.java     |  340 ++-
 .../codecs/idversion/VersionFieldReader.java       |   64 +-
 .../sandbox/codecs/idversion/package-info.java     |   10 +-
 .../lucene/sandbox/document/BigIntegerPoint.java   |  157 +-
 .../document/DoublePointMultiRangeBuilder.java     |   11 +-
 .../document/FloatPointMultiRangeBuilder.java      |   14 +-
 .../document/FloatPointNearestNeighbor.java        |  136 +-
 .../lucene/sandbox/document/HalfFloatPoint.java    |  196 +-
 .../document/IntPointMultiRangeBuilder.java        |   10 +-
 .../lucene/sandbox/document/LatLonBoundingBox.java |  145 +-
 .../document/LongPointMultiRangeBuilder.java       |   10 +-
 .../lucene/sandbox/document/package-info.java      |    9 +-
 .../lucene/sandbox/queries/FuzzyLikeThisQuery.java |  277 +--
 .../lucene/sandbox/queries/package-info.java       |    6 +-
 .../apache/lucene/sandbox/search/BM25FQuery.java   |  105 +-
 .../lucene/sandbox/search/CoveringQuery.java       |   61 +-
 .../lucene/sandbox/search/CoveringScorer.java      |  186 +-
 .../sandbox/search/DocValuesNumbersQuery.java      |   79 +-
 .../lucene/sandbox/search/DocValuesTermsQuery.java |  163 +-
 .../IndexSortSortedNumericDocValuesRangeQuery.java |   88 +-
 .../search/LargeNumHitsTopDocsCollector.java       |   35 +-
 .../search/LatLonPointPrototypeQueries.java        |   54 +-
 .../apache/lucene/sandbox/search/LongHashSet.java  |    9 +-
 .../sandbox/search/MultiNormsLeafSimScorer.java    |   46 +-
 .../lucene/sandbox/search/MultiRangeQuery.java     |  166 +-
 .../lucene/sandbox/search/NearestNeighbor.java     |  212 +-
 .../lucene/sandbox/search/PhraseWildcardQuery.java |  402 +--
 .../lucene/sandbox/search/TermAutomatonQuery.java  |  161 +-
 .../lucene/sandbox/search/TermAutomatonScorer.java |   86 +-
 .../search/TokenStreamToTermAutomatonQuery.java    |   29 +-
 .../apache/lucene/sandbox/search/package-info.java |    7 +-
 .../lucene/payloads/TestPayloadSpanUtil.java       |   19 +-
 .../codecs/idversion/StringAndPayloadField.java    |    4 +-
 .../idversion/TestIDVersionPostingsFormat.java     |  663 +++--
 .../sandbox/document/TestBigIntegerPoint.java      |   86 +-
 .../sandbox/document/TestDoubleRangeField.java     |   38 +-
 .../document/TestFloatPointNearestNeighbor.java    |   98 +-
 .../sandbox/document/TestHalfFloatPoint.java       |   43 +-
 .../sandbox/queries/TestFuzzyLikeThisQuery.java    |   22 +-
 .../lucene/sandbox/search/LongHashSetTests.java    |   11 +-
 .../lucene/sandbox/search/TestBM25FQuery.java      |   66 +-
 .../lucene/sandbox/search/TestCoveringQuery.java   |   29 +-
 .../sandbox/search/TestDocValuesNumbersQuery.java  |   39 +-
 .../sandbox/search/TestDocValuesTermsQuery.java    |   29 +-
 .../sandbox/search/TestFieldCacheTermsFilter.java  |   28 +-
 ...tIndexSortSortedNumericDocValuesRangeQuery.java |   51 +-
 .../search/TestLargeNumHitsTopDocsCollector.java   |   36 +-
 .../search/TestLatLonBoundingBoxQueries.java       |   90 +-
 .../sandbox/search/TestMultiRangeQueries.java      |   66 +-
 .../apache/lucene/sandbox/search/TestNearest.java  |  120 +-
 .../sandbox/search/TestPhraseWildcardQuery.java    |  378 +--
 .../sandbox/search/TestTermAutomatonQuery.java     |  209 +-
 .../org/apache/lucene/spatial/ShapeValues.java     |   11 +-
 .../apache/lucene/spatial/ShapeValuesSource.java   |   10 +-
 .../org/apache/lucene/spatial/SpatialStrategy.java |  115 +-
 .../spatial/bbox/BBoxOverlapRatioValueSource.java  |  169 +-
 .../spatial/bbox/BBoxSimilarityValueSource.java    |   62 +-
 .../apache/lucene/spatial/bbox/BBoxStrategy.java   |  227 +-
 .../lucene/spatial/bbox/BBoxValueSource.java       |   15 +-
 .../apache/lucene/spatial/bbox/package-info.java   |    6 +-
 .../composite/CompositeSpatialStrategy.java        |   64 +-
 .../spatial/composite/CompositeVerifyQuery.java    |   32 +-
 .../composite/IntersectsRPTVerifyQuery.java        |  103 +-
 .../lucene/spatial/composite/package-info.java     |    2 +-
 .../org/apache/lucene/spatial/package-info.java    |    2 +-
 .../spatial/prefix/AbstractPrefixTreeQuery.java    |   33 +-
 .../prefix/AbstractVisitingPrefixTreeQuery.java    |  242 +-
 .../prefix/BytesRefIteratorTokenStream.java        |    6 +-
 .../spatial/prefix/CellToBytesRefIterator.java     |    6 +-
 .../spatial/prefix/ContainsPrefixTreeQuery.java    |  148 +-
 .../lucene/spatial/prefix/HeatmapFacetCounter.java |  251 +-
 .../spatial/prefix/IntersectsPrefixTreeQuery.java  |   29 +-
 .../prefix/NumberRangePrefixTreeStrategy.java      |  121 +-
 .../prefix/PointPrefixTreeFieldCacheProvider.java  |   16 +-
 .../spatial/prefix/PrefixTreeFacetCounter.java     |  128 +-
 .../lucene/spatial/prefix/PrefixTreeStrategy.java  |  151 +-
 .../prefix/RecursivePrefixTreeStrategy.java        |  107 +-
 .../prefix/TermQueryPrefixTreeStrategy.java        |   52 +-
 .../spatial/prefix/WithinPrefixTreeQuery.java      |  147 +-
 .../apache/lucene/spatial/prefix/package-info.java |    4 +-
 .../apache/lucene/spatial/prefix/tree/Cell.java    |   91 +-
 .../lucene/spatial/prefix/tree/CellCanPrune.java   |    9 +-
 .../lucene/spatial/prefix/tree/CellIterator.java   |   26 +-
 .../spatial/prefix/tree/DateRangePrefixTree.java   |  361 +--
 .../spatial/prefix/tree/FilterCellIterator.java    |   15 +-
 .../spatial/prefix/tree/GeohashPrefixTree.java     |   58 +-
 .../lucene/spatial/prefix/tree/LegacyCell.java     |   97 +-
 .../spatial/prefix/tree/LegacyPrefixTree.java      |   39 +-
 .../spatial/prefix/tree/NumberRangePrefixTree.java |  526 ++--
 .../spatial/prefix/tree/PackedQuadPrefixTree.java  |  207 +-
 .../lucene/spatial/prefix/tree/QuadPrefixTree.java |  117 +-
 .../lucene/spatial/prefix/tree/S2PrefixTree.java   |  221 +-
 .../spatial/prefix/tree/S2PrefixTreeCell.java      |  442 ++--
 .../lucene/spatial/prefix/tree/S2ShapeFactory.java |    7 +-
 .../spatial/prefix/tree/SingletonCellIterator.java |    3 +-
 .../spatial/prefix/tree/SpatialPrefixTree.java     |   61 +-
 .../prefix/tree/SpatialPrefixTreeFactory.java      |   48 +-
 .../spatial/prefix/tree/TreeCellIterator.java      |   53 +-
 .../lucene/spatial/prefix/tree/package-info.java   |   19 +-
 .../apache/lucene/spatial/query/SpatialArgs.java   |   40 +-
 .../lucene/spatial/query/SpatialArgsParser.java    |   50 +-
 .../lucene/spatial/query/SpatialOperation.java     |  194 +-
 .../spatial/query/UnsupportedSpatialOperation.java |    4 +-
 .../apache/lucene/spatial/query/package-info.java  |    4 +-
 .../spatial/serialized/SerializedDVStrategy.java   |   94 +-
 .../lucene/spatial/serialized/package-info.java    |    6 +-
 .../lucene/spatial/spatial4j/Geo3dBinaryCodec.java |   28 +-
 .../lucene/spatial/spatial4j/Geo3dCircleShape.java |   24 +-
 .../spatial/spatial4j/Geo3dDistanceCalculator.java |   28 +-
 .../lucene/spatial/spatial4j/Geo3dPointShape.java  |   10 +-
 .../spatial/spatial4j/Geo3dRectangleShape.java     |   63 +-
 .../lucene/spatial/spatial4j/Geo3dShape.java       |   36 +-
 .../spatial/spatial4j/Geo3dShapeFactory.java       |  133 +-
 .../spatial4j/Geo3dSpatialContextFactory.java      |   13 +-
 .../lucene/spatial/spatial4j/package-info.java     |    2 +-
 .../spatial/util/CachingDoubleValueSource.java     |   14 +-
 .../spatial/util/DistanceToShapeValueSource.java   |   42 +-
 .../spatial/util/ReciprocalDoubleValuesSource.java |   22 +-
 .../lucene/spatial/util/ShapeAreaValueSource.java  |   36 +-
 .../lucene/spatial/util/ShapeFieldCache.java       |   26 +-
 .../util/ShapeFieldCacheDistanceValueSource.java   |   64 +-
 .../spatial/util/ShapeFieldCacheProvider.java      |   25 +-
 .../lucene/spatial/util/ShapeValuesPredicate.java  |   25 +-
 .../apache/lucene/spatial/util/package-info.java   |    2 +-
 .../lucene/spatial/vector/DistanceValueSource.java |   55 +-
 .../lucene/spatial/vector/PointVectorStrategy.java |  156 +-
 .../apache/lucene/spatial/vector/package-info.java |    4 +-
 .../org/apache/lucene/spatial/SpatialExample.java  |  110 +-
 .../apache/lucene/spatial/SpatialMatchConcern.java |   11 +-
 .../org/apache/lucene/spatial/SpatialTestCase.java |   53 +-
 .../org/apache/lucene/spatial/SpatialTestData.java |   21 +-
 .../apache/lucene/spatial/SpatialTestQuery.java    |   37 +-
 .../apache/lucene/spatial/StrategyTestCase.java    |   74 +-
 .../lucene/spatial/TestDistanceStrategy.java       |   39 +-
 .../org/apache/lucene/spatial/TestPortedSolr3.java |   69 +-
 .../lucene/spatial/TestQueryEqualsHashCode.java    |   60 +-
 .../org/apache/lucene/spatial/TestSpatialArgs.java |    9 +-
 .../apache/lucene/spatial/TestTestFramework.java   |   40 +-
 .../lucene/spatial/bbox/TestBBoxStrategy.java      |  172 +-
 .../spatial/composite/TestCompositeStrategy.java   |   51 +-
 .../prefix/RandomSpatialOpStrategyTestCase.java    |   65 +-
 .../lucene/spatial/prefix/TestDateNRStrategy.java  |   44 +-
 .../spatial/prefix/TestHeatmapFacetCounter.java    |  137 +-
 .../lucene/spatial/prefix/TestJtsPolygon.java      |   53 +-
 .../spatial/prefix/TestNumberRangeFacets.java      |   82 +-
 .../prefix/TestRandomSpatialOpFuzzyPrefixTree.java |  311 +--
 .../TestRandomSpatialOpFuzzyPrefixTree50.java      |    5 +-
 .../prefix/TestRecursivePrefixTreeStrategy.java    |   50 +-
 .../prefix/TestTermQueryPrefixGridStrategy.java    |   30 +-
 .../prefix/tree/TestDateRangePrefixTree.java       |  240 +-
 .../spatial/prefix/tree/TestS2PrefixTree.java      |   34 +-
 .../spatial/prefix/tree/TestSpatialPrefixTree.java |   32 +-
 .../spatial/query/TestSpatialArgsParser.java       |   28 +-
 .../spatial/serialized/TestSerializedStrategy.java |    3 +-
 .../spatial/spatial4j/RandomizedShapeTestCase.java |   19 +-
 .../spatial4j/ShapeRectRelationTestCase.java       |   42 +-
 .../apache/lucene/spatial/spatial4j/TestGeo3d.java |   49 +-
 .../lucene/spatial/spatial4j/TestGeo3dRpt.java     |   51 +-
 .../TestGeo3dShapeSphereModelRectRelation.java     |   44 +-
 .../TestGeo3dShapeWGS84ModelRectRelation.java      |  120 +-
 .../spatial/vector/TestPointVectorStrategy.java    |   31 +-
 .../lucene/spatial3d/Geo3DDocValuesField.java      |  313 ++-
 .../org/apache/lucene/spatial3d/Geo3DPoint.java    |  151 +-
 .../spatial3d/Geo3DPointDistanceComparator.java    |   72 +-
 .../Geo3DPointOutsideDistanceComparator.java       |   55 +-
 .../spatial3d/Geo3DPointOutsideSortField.java      |   17 +-
 .../lucene/spatial3d/Geo3DPointSortField.java      |   15 +-
 .../org/apache/lucene/spatial3d/Geo3DUtil.java     |  156 +-
 .../lucene/spatial3d/PointInGeo3DShapeQuery.java   |   35 +-
 .../spatial3d/PointInShapeIntersectVisitor.java    |  108 +-
 .../apache/lucene/spatial3d/geom/ArcDistance.java  |   53 +-
 .../lucene/spatial3d/geom/BasePlanetObject.java    |   30 +-
 .../apache/lucene/spatial3d/geom/BaseXYZSolid.java |   81 +-
 .../org/apache/lucene/spatial3d/geom/Bounded.java  |    7 +-
 .../org/apache/lucene/spatial3d/geom/Bounds.java   |  181 +-
 .../lucene/spatial3d/geom/DistanceStyle.java       |  110 +-
 .../org/apache/lucene/spatial3d/geom/GeoArea.java  |   36 +-
 .../lucene/spatial3d/geom/GeoAreaFactory.java      |   28 +-
 .../apache/lucene/spatial3d/geom/GeoAreaShape.java |   16 +-
 .../org/apache/lucene/spatial3d/geom/GeoBBox.java  |    6 +-
 .../lucene/spatial3d/geom/GeoBBoxFactory.java      |   85 +-
 .../lucene/spatial3d/geom/GeoBaseAreaShape.java    |   62 +-
 .../apache/lucene/spatial3d/geom/GeoBaseBBox.java  |   12 +-
 .../lucene/spatial3d/geom/GeoBaseCircle.java       |    8 +-
 .../spatial3d/geom/GeoBaseCompositeAreaShape.java  |   74 +-
 .../geom/GeoBaseCompositeMembershipShape.java      |   21 +-
 .../spatial3d/geom/GeoBaseCompositeShape.java      |   37 +-
 .../spatial3d/geom/GeoBaseDistanceShape.java       |   38 +-
 .../spatial3d/geom/GeoBaseMembershipShape.java     |   22 +-
 .../apache/lucene/spatial3d/geom/GeoBasePath.java  |    8 +-
 .../lucene/spatial3d/geom/GeoBasePolygon.java      |    8 +-
 .../apache/lucene/spatial3d/geom/GeoBaseShape.java |   15 +-
 .../apache/lucene/spatial3d/geom/GeoCircle.java    |    3 +-
 .../lucene/spatial3d/geom/GeoCircleFactory.java    |   47 +-
 .../lucene/spatial3d/geom/GeoComplexPolygon.java   | 1857 +++++++++-----
 .../spatial3d/geom/GeoCompositeAreaShape.java      |   14 +-
 .../geom/GeoCompositeMembershipShape.java          |   17 +-
 .../lucene/spatial3d/geom/GeoCompositePolygon.java |   20 +-
 .../lucene/spatial3d/geom/GeoConcavePolygon.java   |  311 ++-
 .../lucene/spatial3d/geom/GeoConvexPolygon.java    |  316 +--
 .../geom/GeoDegenerateHorizontalLine.java          |  118 +-
 .../spatial3d/geom/GeoDegenerateLatitudeZone.java  |   46 +-
 .../geom/GeoDegenerateLongitudeSlice.java          |   68 +-
 .../lucene/spatial3d/geom/GeoDegeneratePath.java   |  796 +++---
 .../lucene/spatial3d/geom/GeoDegeneratePoint.java  |   87 +-
 .../spatial3d/geom/GeoDegenerateVerticalLine.java  |  125 +-
 .../apache/lucene/spatial3d/geom/GeoDistance.java  |   56 +-
 .../lucene/spatial3d/geom/GeoDistanceShape.java    |   21 +-
 .../lucene/spatial3d/geom/GeoExactCircle.java      |  314 ++-
 .../lucene/spatial3d/geom/GeoLatitudeZone.java     |   99 +-
 .../lucene/spatial3d/geom/GeoLongitudeSlice.java   |  109 +-
 .../lucene/spatial3d/geom/GeoMembershipShape.java  |    7 +-
 .../spatial3d/geom/GeoNorthLatitudeZone.java       |   61 +-
 .../lucene/spatial3d/geom/GeoNorthRectangle.java   |  196 +-
 .../lucene/spatial3d/geom/GeoOutsideDistance.java  |   23 +-
 .../org/apache/lucene/spatial3d/geom/GeoPath.java  |   37 +-
 .../lucene/spatial3d/geom/GeoPathFactory.java      |   12 +-
 .../org/apache/lucene/spatial3d/geom/GeoPoint.java |  230 +-
 .../lucene/spatial3d/geom/GeoPointShape.java       |    7 +-
 .../spatial3d/geom/GeoPointShapeFactory.java       |   11 +-
 .../apache/lucene/spatial3d/geom/GeoPolygon.java   |    4 +-
 .../lucene/spatial3d/geom/GeoPolygonFactory.java   | 1435 ++++++-----
 .../apache/lucene/spatial3d/geom/GeoRectangle.java |  227 +-
 .../apache/lucene/spatial3d/geom/GeoS2Shape.java   |  366 +--
 .../lucene/spatial3d/geom/GeoS2ShapeFactory.java   |   20 +-
 .../org/apache/lucene/spatial3d/geom/GeoShape.java |   39 +-
 .../apache/lucene/spatial3d/geom/GeoSizeable.java  |    4 +-
 .../spatial3d/geom/GeoSouthLatitudeZone.java       |   51 +-
 .../lucene/spatial3d/geom/GeoSouthRectangle.java   |  159 +-
 .../lucene/spatial3d/geom/GeoStandardCircle.java   |   93 +-
 .../lucene/spatial3d/geom/GeoStandardPath.java     | 1397 +++++++----
 .../geom/GeoWideDegenerateHorizontalLine.java      |  142 +-
 .../spatial3d/geom/GeoWideLongitudeSlice.java      |  132 +-
 .../spatial3d/geom/GeoWideNorthRectangle.java      |  178 +-
 .../lucene/spatial3d/geom/GeoWideRectangle.java    |  221 +-
 .../spatial3d/geom/GeoWideSouthRectangle.java      |  156 +-
 .../org/apache/lucene/spatial3d/geom/GeoWorld.java |   33 +-
 .../apache/lucene/spatial3d/geom/LatLonBounds.java |  181 +-
 .../lucene/spatial3d/geom/LinearDistance.java      |   53 +-
 .../spatial3d/geom/LinearSquaredDistance.java      |   53 +-
 .../apache/lucene/spatial3d/geom/Membership.java   |    1 -
 .../lucene/spatial3d/geom/NormalDistance.java      |   53 +-
 .../spatial3d/geom/NormalSquaredDistance.java      |   53 +-
 .../org/apache/lucene/spatial3d/geom/Plane.java    | 1681 ++++++++-----
 .../apache/lucene/spatial3d/geom/PlanetModel.java  |  410 ++-
 .../apache/lucene/spatial3d/geom/PlanetObject.java |    1 -
 .../lucene/spatial3d/geom/SerializableObject.java  |  279 ++-
 .../apache/lucene/spatial3d/geom/SidedPlane.java   |  171 +-
 .../lucene/spatial3d/geom/StandardObjects.java     |   92 +-
 .../lucene/spatial3d/geom/StandardXYZSolid.java    |  462 ++--
 .../org/apache/lucene/spatial3d/geom/Tools.java    |   14 +-
 .../org/apache/lucene/spatial3d/geom/Vector.java   |  268 +-
 .../apache/lucene/spatial3d/geom/XYZBounds.java    |  219 +-
 .../org/apache/lucene/spatial3d/geom/XYZSolid.java |    4 +-
 .../lucene/spatial3d/geom/XYZSolidFactory.java     |   42 +-
 .../apache/lucene/spatial3d/geom/XYdZSolid.java    |  183 +-
 .../apache/lucene/spatial3d/geom/XdYZSolid.java    |  176 +-
 .../apache/lucene/spatial3d/geom/XdYdZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXYZSolid.java    |  191 +-
 .../apache/lucene/spatial3d/geom/dXYdZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXdYZSolid.java   |   86 +-
 .../apache/lucene/spatial3d/geom/dXdYdZSolid.java  |   90 +-
 .../apache/lucene/spatial3d/geom/package-info.java |    2 +-
 .../org/apache/lucene/spatial3d/package-info.java  |    3 +-
 .../lucene/spatial3d/TestGeo3DDocValues.java       |   17 +-
 .../apache/lucene/spatial3d/TestGeo3DPoint.java    | 1414 +++++++----
 .../apache/lucene/spatial3d/geom/Geo3DUtil.java    |    6 +-
 .../spatial3d/geom/RandomGeo3dShapeGenerator.java  |  559 +++--
 .../geom/TestCompositeGeoPolygonRelationships.java |  971 ++++----
 .../apache/lucene/spatial3d/geom/TestGeoBBox.java  |  249 +-
 .../lucene/spatial3d/geom/TestGeoCircle.java       |  310 ++-
 .../spatial3d/geom/TestGeoConvexPolygon.java       |   12 +-
 .../lucene/spatial3d/geom/TestGeoExactCircle.java  |  181 +-
 .../apache/lucene/spatial3d/geom/TestGeoModel.java |   21 +-
 .../apache/lucene/spatial3d/geom/TestGeoPath.java  |  260 +-
 .../apache/lucene/spatial3d/geom/TestGeoPoint.java |   59 +-
 .../lucene/spatial3d/geom/TestGeoPolygon.java      | 2607 +++++++++++++-------
 .../apache/lucene/spatial3d/geom/TestPlane.java    |   29 +-
 .../spatial3d/geom/TestRandomBinaryCodec.java      |   13 +-
 .../spatial3d/geom/TestRandomGeoPolygon.java       |  172 +-
 .../geom/TestRandomGeoShapeRelationship.java       |  120 +-
 .../lucene/spatial3d/geom/TestRandomPlane.java     |   58 +-
 .../geom/TestSimpleGeoPolygonRelationships.java    | 1203 +++++----
 .../apache/lucene/spatial3d/geom/TestXYZSolid.java |   32 +-
 .../lucene/search/spell/CombineSuggestion.java     |   23 +-
 .../org/apache/lucene/search/spell/Dictionary.java |    9 +-
 .../lucene/search/spell/DirectSpellChecker.java    |  352 ++-
 .../search/spell/HighFrequencyDictionary.java      |   33 +-
 .../lucene/search/spell/JaroWinklerDistance.java   |   39 +-
 .../lucene/search/spell/LevenshteinDistance.java   |  161 +-
 .../lucene/search/spell/LuceneDictionary.java      |   14 +-
 .../search/spell/LuceneLevenshteinDistance.java    |   71 +-
 .../apache/lucene/search/spell/NGramDistance.java  |  132 +-
 .../lucene/search/spell/PlainTextDictionary.java   |   17 +-
 .../apache/lucene/search/spell/SpellChecker.java   |  292 ++-
 .../apache/lucene/search/spell/StringDistance.java |   14 +-
 .../apache/lucene/search/spell/SuggestMode.java    |   15 +-
 .../apache/lucene/search/spell/SuggestWord.java    |   30 +-
 .../spell/SuggestWordFrequencyComparator.java      |   12 +-
 .../lucene/search/spell/SuggestWordQueue.java      |   16 +-
 .../search/spell/SuggestWordScoreComparator.java   |   13 +-
 .../lucene/search/spell/WordBreakSpellChecker.java |  334 ++-
 .../apache/lucene/search/spell/package-info.java   |    5 +-
 .../apache/lucene/search/suggest/BitsProducer.java |    9 +-
 .../search/suggest/BufferedInputIterator.java      |    8 +-
 .../lucene/search/suggest/DocumentDictionary.java  |   99 +-
 .../suggest/DocumentValueSourceDictionary.java     |  108 +-
 .../lucene/search/suggest/FileDictionary.java      |   75 +-
 .../lucene/search/suggest/InMemorySorter.java      |    9 +-
 .../lucene/search/suggest/InputIterator.java       |   45 +-
 .../org/apache/lucene/search/suggest/Lookup.java   |  156 +-
 .../lucene/search/suggest/SortedInputIterator.java |  147 +-
 .../search/suggest/UnsortedInputIterator.java      |   19 +-
 .../suggest/analyzing/AnalyzingInfixSuggester.java |  542 ++--
 .../suggest/analyzing/AnalyzingSuggester.java      |  481 ++--
 .../suggest/analyzing/BlendedInfixSuggester.java   |  168 +-
 .../lucene/search/suggest/analyzing/FSTUtil.java   |   64 +-
 .../suggest/analyzing/FreeTextSuggester.java       |  459 ++--
 .../search/suggest/analyzing/FuzzySuggester.java   |  220 +-
 .../suggest/analyzing/SuggestStopFilter.java       |   23 +-
 .../analyzing/SuggestStopFilterFactory.java        |   58 +-
 .../search/suggest/analyzing/package-info.java     |    6 +-
 .../document/Completion50PostingsFormat.java       |   19 +-
 .../document/Completion84PostingsFormat.java       |   14 +-
 .../suggest/document/CompletionAnalyzer.java       |   92 +-
 .../suggest/document/CompletionFieldsConsumer.java |   73 +-
 .../suggest/document/CompletionFieldsProducer.java |   66 +-
 .../suggest/document/CompletionPostingsFormat.java |  130 +-
 .../search/suggest/document/CompletionQuery.java   |   57 +-
 .../search/suggest/document/CompletionScorer.java  |   40 +-
 .../search/suggest/document/CompletionTerms.java   |   26 +-
 .../suggest/document/CompletionTokenStream.java    |   40 +-
 .../search/suggest/document/CompletionWeight.java  |   35 +-
 .../suggest/document/CompletionsTermsReader.java   |   21 +-
 .../search/suggest/document/ContextQuery.java      |  149 +-
 .../suggest/document/ContextSuggestField.java      |   65 +-
 .../suggest/document/FuzzyCompletionQuery.java     |  138 +-
 .../search/suggest/document/NRTSuggester.java      |  312 +--
 .../suggest/document/NRTSuggesterBuilder.java      |   56 +-
 .../suggest/document/PrefixCompletionQuery.java    |   30 +-
 .../suggest/document/RegexCompletionQuery.java     |   53 +-
 .../search/suggest/document/SuggestField.java      |   58 +-
 .../suggest/document/SuggestIndexSearcher.java     |   33 +-
 .../document/SuggestScoreDocPriorityQueue.java     |   13 +-
 .../search/suggest/document/TopSuggestDocs.java    |   53 +-
 .../suggest/document/TopSuggestDocsCollector.java  |   87 +-
 .../search/suggest/document/package-info.java      |    4 +-
 .../lucene/search/suggest/fst/BytesRefSorter.java  |   26 +-
 .../search/suggest/fst/ExternalRefSorter.java      |   54 +-
 .../lucene/search/suggest/fst/FSTCompletion.java   |  178 +-
 .../search/suggest/fst/FSTCompletionBuilder.java   |  240 +-
 .../search/suggest/fst/FSTCompletionLookup.java    |  179 +-
 .../search/suggest/fst/WFSTCompletionLookup.java   |  135 +-
 .../lucene/search/suggest/fst/package-info.java    |    6 +-
 .../search/suggest/jaspell/JaspellLookup.java      |   45 +-
 .../suggest/jaspell/JaspellTernarySearchTrie.java  |  662 +++--
 .../search/suggest/jaspell/package-info.java       |    8 +-
 .../apache/lucene/search/suggest/package-info.java |    4 +-
 .../lucene/search/suggest/tst/TSTAutocomplete.java |   65 +-
 .../lucene/search/suggest/tst/TSTLookup.java       |  120 +-
 .../lucene/search/suggest/tst/TernaryTreeNode.java |   25 +-
 .../lucene/search/suggest/tst/package-info.java    |    6 +-
 .../search/spell/TestDirectSpellChecker.java       |  149 +-
 .../search/spell/TestJaroWinklerDistance.java      |    9 +-
 .../search/spell/TestLevenshteinDistance.java      |   23 +-
 .../lucene/search/spell/TestLuceneDictionary.java  |   56 +-
 .../lucene/search/spell/TestNGramDistance.java     |   76 +-
 .../search/spell/TestPlainTextDictionary.java      |    7 +-
 .../lucene/search/spell/TestSpellChecker.java      |  283 ++-
 .../search/spell/TestWordBreakSpellChecker.java    |  313 ++-
 .../org/apache/lucene/search/suggest/Average.java  |   70 +-
 .../search/suggest/DocumentDictionaryTest.java     |  148 +-
 .../suggest/DocumentValueSourceDictionaryTest.java |  136 +-
 .../lucene/search/suggest/FileDictionaryTest.java  |   74 +-
 .../org/apache/lucene/search/suggest/Input.java    |   28 +-
 .../lucene/search/suggest/InputArrayIterator.java  |   10 +-
 .../lucene/search/suggest/LookupBenchmarkTest.java |  183 +-
 .../lucene/search/suggest/PersistenceTest.java     |   48 +-
 .../lucene/search/suggest/TestInputIterator.java   |   71 +-
 .../analyzing/AnalyzingInfixSuggesterTest.java     |  715 ++++--
 .../suggest/analyzing/AnalyzingSuggesterTest.java  |  601 +++--
 .../analyzing/BlendedInfixSuggesterTest.java       |  298 ++-
 .../suggest/analyzing/FuzzySuggesterTest.java      |  626 +++--
 .../suggest/analyzing/TestFreeTextSuggester.java   |  370 ++-
 .../suggest/analyzing/TestSuggestStopFilter.java   |  137 +-
 .../analyzing/TestSuggestStopFilterFactory.java    |   62 +-
 .../search/suggest/document/TestContextQuery.java  |  191 +-
 .../suggest/document/TestContextSuggestField.java  |  127 +-
 .../suggest/document/TestFuzzyCompletionQuery.java |   41 +-
 .../document/TestPrefixCompletionQuery.java        |  196 +-
 .../suggest/document/TestRegexCompletionQuery.java |   50 +-
 .../search/suggest/document/TestSuggestField.java  |  300 ++-
 .../search/suggest/fst/BytesRefSortersTest.java    |   15 +-
 .../search/suggest/fst/FSTCompletionTest.java      |  157 +-
 .../search/suggest/fst/WFSTCompletionTest.java     |  109 +-
 .../analysis/BaseTokenStreamFactoryTestCase.java   |  120 +-
 .../lucene/analysis/BaseTokenStreamTestCase.java   |  826 +++++--
 .../lucene/analysis/CannedBinaryTokenStream.java   |   16 +-
 .../apache/lucene/analysis/CannedTokenStream.java  |   14 +-
 .../apache/lucene/analysis/CollationTestBase.java  |  108 +-
 .../apache/lucene/analysis/CrankyTokenFilter.java  |   14 +-
 .../lucene/analysis/LookaheadTokenFilter.java      |  117 +-
 .../org/apache/lucene/analysis/MockAnalyzer.java   |  102 +-
 .../apache/lucene/analysis/MockBytesAnalyzer.java  |   14 +-
 .../org/apache/lucene/analysis/MockCharFilter.java |   46 +-
 .../analysis/MockFixedLengthPayloadFilter.java     |    5 +-
 .../lucene/analysis/MockGraphTokenFilter.java      |   29 +-
 .../analysis/MockHoleInjectingTokenFilter.java     |   10 +-
 .../lucene/analysis/MockLowerCaseFilter.java       |    6 +-
 .../lucene/analysis/MockPayloadAnalyzer.java       |   22 +-
 .../analysis/MockRandomLookaheadTokenFilter.java   |   11 +-
 .../apache/lucene/analysis/MockReaderWrapper.java  |    9 +-
 .../lucene/analysis/MockSynonymAnalyzer.java       |    1 -
 .../apache/lucene/analysis/MockSynonymFilter.java  |    5 +-
 .../apache/lucene/analysis/MockTokenFilter.java    |   74 +-
 .../org/apache/lucene/analysis/MockTokenizer.java  |  166 +-
 .../analysis/MockUTF16TermAttributeImpl.java       |   12 +-
 .../analysis/MockVariableLengthPayloadFilter.java  |    5 +-
 .../lucene/analysis/SimplePayloadFilter.java       |    1 -
 .../src/java/org/apache/lucene/analysis/Token.java |  112 +-
 .../apache/lucene/analysis/TokenStreamToDot.java   |   27 +-
 .../lucene/analysis/ValidatingTokenFilter.java     |   72 +-
 .../apache/lucene/analysis/VocabularyAssert.java   |   34 +-
 .../apache/lucene/codecs/MissingOrdRemapper.java   |   21 +-
 .../lucene/codecs/asserting/AssertingCodec.java    |   66 +-
 .../codecs/asserting/AssertingDocValuesFormat.java |   75 +-
 .../codecs/asserting/AssertingLiveDocsFormat.java  |   15 +-
 .../codecs/asserting/AssertingNormsFormat.java     |   27 +-
 .../codecs/asserting/AssertingPointsFormat.java    |   26 +-
 .../codecs/asserting/AssertingPostingsFormat.java  |   46 +-
 .../asserting/AssertingStoredFieldsFormat.java     |   26 +-
 .../asserting/AssertingTermVectorsFormat.java      |   32 +-
 .../lucene/codecs/asserting/package-info.java      |    4 +-
 .../lucene/codecs/blockterms/LuceneFixedGap.java   |    8 +-
 .../blockterms/LuceneVarGapDocFreqInterval.java    |   17 +-
 .../blockterms/LuceneVarGapFixedInterval.java      |   13 +-
 .../bloom/TestBloomFilteredLucenePostings.java     |   35 +-
 .../codecs/cheapbastard/CheapBastardCodec.java     |    6 +-
 .../lucene/codecs/cheapbastard/package-info.java   |    6 +-
 .../codecs/compressing/CompressingCodec.java       |  141 +-
 .../DeflateWithPresetCompressingCodec.java         |   16 +-
 .../codecs/compressing/FastCompressingCodec.java   |   13 +-
 .../FastDecompressionCompressingCodec.java         |   13 +-
 .../HighCompressionCompressingCodec.java           |   13 +-
 .../compressing/LZ4WithPresetCompressingCodec.java |   16 +-
 .../compressing/dummy/DummyCompressingCodec.java   |  118 +-
 .../codecs/compressing/dummy/package-info.java     |    4 +-
 .../apache/lucene/codecs/cranky/CrankyCodec.java   |    8 +-
 .../lucene/codecs/cranky/CrankyCompoundFormat.java |   10 +-
 .../codecs/cranky/CrankyDocValuesFormat.java       |   26 +-
 .../codecs/cranky/CrankyFieldInfosFormat.java      |   15 +-
 .../lucene/codecs/cranky/CrankyLiveDocsFormat.java |   10 +-
 .../lucene/codecs/cranky/CrankyNormsFormat.java    |    9 +-
 .../lucene/codecs/cranky/CrankyPointsFormat.java   |   23 +-
 .../lucene/codecs/cranky/CrankyPostingsFormat.java |   17 +-
 .../codecs/cranky/CrankySegmentInfoFormat.java     |    9 +-
 .../codecs/cranky/CrankyStoredFieldsFormat.java    |   21 +-
 .../codecs/cranky/CrankyTermVectorsFormat.java     |   34 +-
 .../apache/lucene/codecs/cranky/package-info.java  |    4 +-
 .../mockrandom/MockRandomPostingsFormat.java       |  105 +-
 .../lucene/codecs/mockrandom/package-info.java     |    4 +-
 .../codecs/ramonly/RAMOnlyPostingsFormat.java      |  107 +-
 .../apache/lucene/codecs/ramonly/package-info.java |    4 +-
 .../codecs/uniformsplit/Rot13CypherTestUtil.java   |   11 +-
 .../UniformSplitRot13PostingsFormat.java           |   25 +-
 .../STUniformSplitRot13PostingsFormat.java         |   25 +-
 .../apache/lucene/geo/BaseGeoPointTestCase.java    |  869 ++++---
 .../org/apache/lucene/geo/BaseXYPointTestCase.java |  655 +++--
 .../java/org/apache/lucene/geo/EarthDebugger.java  |  124 +-
 .../java/org/apache/lucene/geo/GeoTestUtil.java    |  288 ++-
 .../java/org/apache/lucene/geo/ShapeTestUtil.java  |  107 +-
 .../apache/lucene/index/AlcoholicMergePolicy.java  |   51 +-
 .../lucene/index/AllDeletedFilterReader.java       |    6 +-
 .../lucene/index/AssertingDirectoryReader.java     |    6 +-
 .../apache/lucene/index/AssertingLeafReader.java   |  224 +-
 .../lucene/index/BaseCompoundFormatTestCase.java   |  413 ++--
 .../BaseCompressingDocValuesFormatTestCase.java    |    4 +-
 .../lucene/index/BaseDocValuesFormatTestCase.java  |  989 ++++----
 .../lucene/index/BaseFieldInfoFormatTestCase.java  |  246 +-
 .../lucene/index/BaseIndexFileFormatTestCase.java  |  563 +++--
 .../lucene/index/BaseLiveDocsFormatTestCase.java   |   50 +-
 .../lucene/index/BaseMergePolicyTestCase.java      |  375 +--
 .../lucene/index/BaseNormsFormatTestCase.java      |  505 ++--
 .../lucene/index/BasePointsFormatTestCase.java     |  569 +++--
 .../lucene/index/BasePostingsFormatTestCase.java   |  670 ++---
 .../index/BaseSegmentInfoFormatTestCase.java       |  473 ++--
 .../index/BaseStoredFieldsFormatTestCase.java      |  238 +-
 .../index/BaseTermVectorsFormatTestCase.java       |  406 +--
 .../apache/lucene/index/BaseTestCheckIndex.java    |   44 +-
 .../java/org/apache/lucene/index/DocHelper.java    |  187 +-
 .../apache/lucene/index/FieldFilterLeafReader.java |   90 +-
 .../org/apache/lucene/index/ForceMergePolicy.java  |   10 +-
 .../lucene/index/IndexWriterMaxDocsChanger.java    |   16 +-
 .../apache/lucene/index/MergingCodecReader.java    |   41 +-
 .../index/MergingDirectoryReaderWrapper.java       |   22 +-
 .../lucene/index/MismatchedDirectoryReader.java    |    9 +-
 .../apache/lucene/index/MismatchedLeafReader.java  |   59 +-
 .../apache/lucene/index/MockRandomMergePolicy.java |  102 +-
 .../lucene/index/OwnCacheKeyMultiReader.java       |   35 +-
 .../org/apache/lucene/index/PerThreadPKLookup.java |   33 +-
 .../apache/lucene/index/PointsStackTracker.java    |   34 +-
 .../java/org/apache/lucene/index/RandomCodec.java  |  224 +-
 .../org/apache/lucene/index/RandomIndexWriter.java |  234 +-
 .../apache/lucene/index/RandomPostingsTester.java  |  697 ++++--
 .../ThreadedIndexingAndSearchingTestCase.java      |  680 ++---
 .../org/apache/lucene/mockfile/DisableFsyncFS.java |   25 +-
 .../java/org/apache/lucene/mockfile/ExtrasFS.java  |   43 +-
 .../mockfile/FilterAsynchronousFileChannel.java    |   40 +-
 .../lucene/mockfile/FilterDirectoryStream.java     |   31 +-
 .../apache/lucene/mockfile/FilterFileChannel.java  |   25 +-
 .../apache/lucene/mockfile/FilterFileStore.java    |   26 +-
 .../apache/lucene/mockfile/FilterFileSystem.java   |   39 +-
 .../lucene/mockfile/FilterFileSystemProvider.java  |  114 +-
 .../apache/lucene/mockfile/FilterInputStream2.java |   37 +-
 .../lucene/mockfile/FilterOutputStream2.java       |   39 +-
 .../org/apache/lucene/mockfile/FilterPath.java     |   72 +-
 .../lucene/mockfile/FilterSeekableByteChannel.java |   25 +-
 .../org/apache/lucene/mockfile/HandleLimitFS.java  |   11 +-
 .../apache/lucene/mockfile/HandleTrackingFS.java   |  413 ++--
 .../java/org/apache/lucene/mockfile/LeakFS.java    |   16 +-
 .../lucene/mockfile/MockFileSystemTestCase.java    |   22 +-
 .../java/org/apache/lucene/mockfile/ShuffleFS.java |   23 +-
 .../java/org/apache/lucene/mockfile/VerboseFS.java |   54 +-
 .../apache/lucene/mockfile/VirusCheckingFS.java    |   25 +-
 .../java/org/apache/lucene/mockfile/WindowsFS.java |   53 +-
 .../org/apache/lucene/mockfile/package-info.java   |   13 +-
 .../apache/lucene/search/AssertingBulkScorer.java  |   11 +-
 .../apache/lucene/search/AssertingCollector.java   |   14 +-
 .../lucene/search/AssertingIndexSearcher.java      |   24 +-
 .../lucene/search/AssertingLeafCollector.java      |    4 +-
 .../org/apache/lucene/search/AssertingMatches.java |    5 +-
 .../lucene/search/AssertingMatchesIterator.java    |    9 +-
 .../org/apache/lucene/search/AssertingQuery.java   |   11 +-
 .../apache/lucene/search/AssertingScorable.java    |   20 +-
 .../org/apache/lucene/search/AssertingScorer.java  |  116 +-
 .../org/apache/lucene/search/AssertingWeight.java  |   14 +-
 .../lucene/search/BaseExplanationTestCase.java     |   91 +-
 .../lucene/search/BaseRangeFieldQueryTestCase.java |  133 +-
 .../lucene/search/BlockScoreQueryWrapper.java      |    9 +-
 .../lucene/search/BulkScorerWrapperScorer.java     |   38 +-
 .../java/org/apache/lucene/search/CheckHits.java   |  397 +--
 .../java/org/apache/lucene/search/QueryUtils.java  |  636 +++--
 .../lucene/search/RandomApproximationQuery.java    |   24 +-
 .../apache/lucene/search/ScorerIndexSearcher.java  |   31 +-
 .../lucene/search/SearchEquivalenceTestBase.java   |  106 +-
 .../lucene/search/ShardSearchingTestBase.java      |  148 +-
 .../search/similarities/AssertingSimilarity.java   |   15 +-
 .../similarities/BaseSimilarityTestCase.java       |  171 +-
 .../search/similarities/RandomSimilarity.java      |   37 +-
 .../lucene/search/spans/AssertingSpanQuery.java    |    9 +-
 .../lucene/search/spans/AssertingSpanWeight.java   |   10 +-
 .../apache/lucene/search/spans/AssertingSpans.java |  129 +-
 .../apache/lucene/search/spans/SpanTestUtil.java   |  106 +-
 .../apache/lucene/store/BaseDirectoryTestCase.java |  404 +--
 .../apache/lucene/store/BaseDirectoryWrapper.java  |   18 +-
 .../lucene/store/BaseLockFactoryTestCase.java      |  150 +-
 .../apache/lucene/store/CorruptingIndexOutput.java |   21 +-
 .../apache/lucene/store/MockDirectoryWrapper.java  |  632 ++---
 .../apache/lucene/store/MockIndexInputWrapper.java |   30 +-
 .../lucene/store/MockIndexOutputWrapper.java       |   43 +-
 .../apache/lucene/store/RawDirectoryWrapper.java   |   14 +-
 .../store/SlowClosingMockIndexInputWrapper.java    |   14 +-
 .../store/SlowOpeningMockIndexInputWrapper.java    |   13 +-
 .../lucene/util/AbstractBeforeAfterRule.java       |   11 +-
 .../org/apache/lucene/util/BaseBitSetTestCase.java |   16 +-
 .../apache/lucene/util/BaseDocIdSetTestCase.java   |   15 +-
 .../org/apache/lucene/util/CloseableDirectory.java |   10 +-
 .../src/java/org/apache/lucene/util/English.java   |   26 +-
 .../lucene/util/FailOnNonBulkMergesInfoStream.java |    5 +-
 .../java/org/apache/lucene/util/FailureMarker.java |    5 +-
 .../java/org/apache/lucene/util/LineFileDocs.java  |   64 +-
 .../lucene/util/LuceneJUnit3MethodProvider.java    |   21 +-
 .../org/apache/lucene/util/LuceneTestCase.java     | 1936 ++++++++-------
 .../org/apache/lucene/util/NullInfoStream.java     |   10 +-
 .../lucene/util/QuickPatchThreadsFilter.java       |   11 +-
 .../org/apache/lucene/util/RamUsageTester.java     |  276 ++-
 .../org/apache/lucene/util/RemoveUponClose.java    |   13 +-
 .../src/java/org/apache/lucene/util/Rethrow.java   |   16 +-
 .../lucene/util/RunListenerPrintReproduceInfo.java |   93 +-
 .../lucene/util/TestRuleAssertionsRequired.java    |    6 +-
 .../org/apache/lucene/util/TestRuleDelegate.java   |    5 +-
 .../util/TestRuleIgnoreAfterMaxFailures.java       |   34 +-
 .../lucene/util/TestRuleIgnoreTestSuites.java      |   37 +-
 .../apache/lucene/util/TestRuleLimitSysouts.java   |  169 +-
 .../apache/lucene/util/TestRuleMarkFailure.java    |   28 +-
 .../util/TestRuleRestoreSystemProperties.java      |   26 +-
 .../util/TestRuleSetupAndRestoreClassEnv.java      |  173 +-
 .../util/TestRuleSetupAndRestoreInstanceEnv.java   |    4 +-
 .../lucene/util/TestRuleSetupTeardownChained.java  |   23 +-
 .../apache/lucene/util/TestRuleStoreClassName.java |   13 +-
 .../lucene/util/TestRuleTemporaryFilesCleanup.java |  119 +-
 .../lucene/util/TestRuleThreadAndTestName.java     |   13 +-
 .../apache/lucene/util/TestSecurityManager.java    |   72 +-
 .../src/java/org/apache/lucene/util/TestUtil.java  | 1119 ++++++---
 .../apache/lucene/util/ThrottledIndexOutput.java   |   45 +-
 .../src/java/org/apache/lucene/util/TimeUnits.java |    2 +-
 .../lucene/util/automaton/AutomatonTestUtil.java   |  182 +-
 .../java/org/apache/lucene/util/fst/FSTTester.java |  297 ++-
 .../lucene/analysis/TestLookaheadTokenFilter.java  |   94 +-
 .../apache/lucene/analysis/TestMockAnalyzer.java   |  307 ++-
 .../apache/lucene/analysis/TestMockCharFilter.java |   54 +-
 .../lucene/analysis/TestMockSynonymFilter.java     |  199 +-
 .../org/apache/lucene/analysis/TestPosition.java   |    5 +-
 .../lucene/analysis/TrivialLookaheadFilter.java    |   20 +-
 .../asserting/TestAssertingDocValuesFormat.java    |    2 +-
 .../codecs/asserting/TestAssertingNormsFormat.java |    4 +-
 .../asserting/TestAssertingPostingsFormat.java     |    2 +-
 .../asserting/TestAssertingStoredFieldsFormat.java |    4 +-
 .../asserting/TestAssertingTermVectorsFormat.java  |    2 +-
 .../TestCompressingStoredFieldsFormat.java         |   75 +-
 .../TestCompressingTermVectorsFormat.java          |   20 +-
 .../lucene/index/TestAssertingLeafReader.java      |   20 +-
 .../apache/lucene/index/TestForceMergePolicy.java  |    3 +-
 .../apache/lucene/mockfile/TestDisableFsyncFS.java |   16 +-
 .../org/apache/lucene/mockfile/TestExtrasFS.java   |   18 +-
 .../apache/lucene/mockfile/TestHandleLimitFS.java  |   21 +-
 .../lucene/mockfile/TestHandleTrackingFS.java      |   52 +-
 .../org/apache/lucene/mockfile/TestLeakFS.java     |   31 +-
 .../org/apache/lucene/mockfile/TestShuffleFS.java  |   55 +-
 .../org/apache/lucene/mockfile/TestVerboseFS.java  |   72 +-
 .../lucene/mockfile/TestVirusCheckingFS.java       |   11 +-
 .../org/apache/lucene/mockfile/TestWindowsFS.java  |   88 +-
 .../lucene/search/TestBaseExplanationTestCase.java |   66 +-
 .../lucene/store/TestMockDirectoryWrapper.java     |   35 +-
 .../src/test/org/apache/lucene/util/SorePoint.java |    7 +-
 .../lucene/util/TestBeforeAfterOverrides.java      |   18 +-
 .../org/apache/lucene/util/TestCodecReported.java  |    5 +-
 .../util/TestExceptionInBeforeClassHooks.java      |   83 +-
 .../org/apache/lucene/util/TestExpectThrows.java   |  128 +-
 .../lucene/util/TestFailIfDirectoryNotClosed.java  |   10 +-
 .../lucene/util/TestFailIfUnreferencedFiles.java   |   15 +-
 .../org/apache/lucene/util/TestGroupFiltering.java |   12 +-
 .../org/apache/lucene/util/TestJUnitRuleOrder.java |   40 +-
 .../test/org/apache/lucene/util/TestJvmInfo.java   |   28 +-
 .../apache/lucene/util/TestMaxFailuresRule.java    |  137 +-
 .../org/apache/lucene/util/TestPleaseFail.java     |    5 +-
 .../util/TestRamUsageTesterOnWildAnimals.java      |    8 +-
 .../apache/lucene/util/TestReproduceMessage.java   |  122 +-
 .../util/TestReproduceMessageWithRepeated.java     |   10 +-
 .../util/TestRunWithRestrictedPermissions.java     |   17 +-
 .../apache/lucene/util/TestSeedFromUncaught.java   |   22 +-
 .../lucene/util/TestSetupTeardownChaining.java     |   33 +-
 .../org/apache/lucene/util/TestSysoutsLimits.java  |   39 +-
 .../lucene/util/TestWorstCaseTestBehavior.java     |   44 +-
 .../org/apache/lucene/util/WithNestedTests.java    |  154 +-
 1285 files changed, 62334 insertions(+), 49254 deletions(-)

diff --git a/gradle/generation/javacc.gradle b/gradle/generation/javacc.gradle
index 339eada..4a3dced 100644
--- a/gradle/generation/javacc.gradle
+++ b/gradle/generation/javacc.gradle
@@ -227,6 +227,22 @@ configure(project(":lucene:queryparser")) {
     }
   }
 
+  task regenerate() {
+    description "Regenerate any generated sources"
+    group "generation"
+
+    // Run regeneration tasks.
+    dependsOn javaccParserClassic, javaccParserSurround, javaccParserFlexible
+
+    // Clean up and reformat the generated sources after generation.
+    dependsOn "tidy"
+  }
+
+  // Make sure tidy runs after generation, if they're defined.
+  tasks.matching { it.name == "tidy" }.configureEach {
+    mustRunAfter javaccParserClassic, javaccParserSurround, javaccParserFlexible
+  }
+
   task javacc() {
     description "Regenerate query parsers (javacc syntax definitions)."
     group "generation"
@@ -244,7 +260,6 @@ configure(project(":solr:core")) {
 
     javaccFile = file('src/java/org/apache/solr/parser/QueryParser.jj')
 
-
     afterGenerate << commonCleanups
     afterGenerate << { FileTree generatedFiles ->
       generatedFiles.matching { include "QueryParser.java" }.each { file ->
diff --git a/gradle/validation/spotless.gradle b/gradle/validation/spotless.gradle
index 3dc3deb..148ec5b 100644
--- a/gradle/validation/spotless.gradle
+++ b/gradle/validation/spotless.gradle
@@ -16,116 +16,89 @@
  */
 
 /*
- * LUCENE-9564: This adds automatic (and enforced) code formatting.
+ * LUCENE-9564: This adds automatic (and enforced) code formatting using
+ * spotless and Google Java Format.
  */
 
 def resources = scriptResources(buildscript)
 
-allprojects { prj ->
+configure(project(":lucene").subprojects) { prj ->
   plugins.withType(JavaPlugin) {
     prj.apply plugin: 'com.diffplug.spotless'
 
     spotless {
       java {
-        // TODO: work out how to have multiple different header files (we have
-        // classes in the codebase that have original headers).
+        // TODO: Work out how to support multiple different header files (we have
+        // classes in the codebase that have original headers). We currently use
+        // Apache RAT to enforce headers so this is of lesser priority.
+        //
         // licenseHeaderFile file("${resources}/asl-header.txt"), '^(\\s*package)'
 
         lineEndings 'UNIX'
         endWithNewline()
         googleJavaFormat('1.9')
 
+        // Apply to all Java sources
+        target "src/**/*.java"
+
+        // Exclude certain files (generated ones, mostly).
         switch (project.path) {
-          // These modules are complete - all sources scanned.
           case ":lucene:core":
-            target "src/java/**/*.java",
-                   "src/test/**/*.java"
-            targetExclude "**/resources/**", "**/StandardTokenizerImpl.java"
-            break
-
-          case ":lucene:highlighter":
-            target "src/java/**/*.java",
-                   "src/test/**/*.java"
-            targetExclude "**/resources/**"
-            break
-
-          case ":lucene:queries":
-            target "src/java/**/*.java",
-                   "src/test/**/*.java"
-            targetExclude "**/resources/**"
+            targetExclude "**/StandardTokenizerImpl.java"
             break
 
           case ":lucene:analysis:common":
-            target "src/**/*.java"
-            targetExclude "**/resources/**",
-                "**/HTMLStripCharFilter.java",
+            targetExclude "**/HTMLStripCharFilter.java",
                 "**/UAX29URLEmailTokenizerImpl.java",
                 "**/tartarus/**"
             break
 
-          case ":lucene:demo":
-          case ":lucene:analysis:morfologik":
-          case ":lucene:analysis:icu":
-          case ":lucene:analysis:kuromoji":
-          case ":lucene:memory":
-          case ":lucene:benchmark":
-          case ":lucene:analysis:nori":
-          case ":lucene:analysis:opennlp":
-          case ":lucene:analysis:phonetic":
-          case ":lucene:analysis:smartcn":
-          case ":lucene:analysis:stempel":
-          case ":lucene:classification":
-          case ":lucene:backward-codecs":
-          case ":lucene:codecs":
-          case ":lucene:join":
-            target "src/**/*.java"
-            targetExclude "**/resources/**"
+          case ":lucene:test-framework":
+            targetExclude "**/EmojiTokenizationTestUnicode_11_0.java",
+                "**/WordBreakTestUnicode_9_0_0.java"
             break
 
           case ":lucene:expressions":
-            target "src/**/*.java"
-            targetExclude "**/resources/**", "**/JavascriptLexer.java", "**/JavascriptParser.java",
+            targetExclude "**/JavascriptLexer.java",
+                "**/JavascriptParser.java",
                 "**/JavascriptVisitor.java"
             break
 
-            // Partially complete.
-
-          case ":lucene:facet":
-            target "src/**/*.java"
-            targetExclude "**/taxonomy.8.6.3-cfs.zip"
-            break
-
-          // All others - disable reformatting/ checks for now.
-          case ":lucene:grouping":
-          case ":lucene:luke":
-          case ":lucene:misc":
-          case ":lucene:monitor":
           case ":lucene:queryparser":
-          case ":lucene:replicator":
-          case ":lucene:sandbox":
-          case ":lucene:spatial3d":
-          case ":lucene:spatial-extras":
-          case ":lucene:suggest":
-          case ":lucene:test-framework":
-
-          default:
-            target 'non-existing/**'
+            targetExclude "**/classic/ParseException.java",
+              "**/classic/QueryParser.java",
+              "**/classic/QueryParserConstants.java",
+              "**/classic/QueryParserTokenManager.java",
+              "**/classic/Token.java",
+              "**/classic/TokenMgrError.java",
+              "**/standard/parser/ParseException.java",
+              "**/standard/parser/StandardSyntaxParser.java",
+              "**/standard/parser/StandardSyntaxParserConstants.java",
+              "**/standard/parser/StandardSyntaxParserTokenManager.java",
+              "**/standard/parser/Token.java",
+              "**/standard/parser/TokenMgrError.java",
+              "**/surround/parser/ParseException.java",
+              "**/surround/parser/QueryParser.java",
+              "**/surround/parser/QueryParserConstants.java",
+              "**/surround/parser/QueryParserTokenManager.java",
+              "**/surround/parser/Token.java",
+              "**/surround/parser/TokenMgrError.java"
             break
         }
       }
     }
 
+    // Workaround for an odd problem in spotless where it fails because
+    // of a missing folder.
     spotlessJava {
       doFirst {
         project.mkdir("${buildDir}/spotless/spotlessJava")
       }
     }
   }
-}
 
-// Add an alias to 'spotlessApply' simply called 'tidy' and add
-// spotlessCheck to check.
-allprojects { prj ->
+  // Add an alias to 'spotlessApply' simply called 'tidy' and wire up
+  // spotlessCheck to convention's check.
   task tidy() {
     description "Applies formatters and cleanups to sources."
     group "verification"
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 742aed2..bb5bdb3 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -191,6 +191,10 @@ Bug fixes
 
 Other
 
+* LUCENE-9570, LUCENE-9564: Apply google java format and enforce it on source Java files.
+  Review diffs and correct automatic formatting oddities. (Erick Erickson,
+  Bruno Roustant, Dawid Weiss)
+
 * LUCENE-9631: Properly override slice() on subclasses of OffsetRange. (Dawid Weiss)
 
 * LUCENE-9312: Allow gradle builds against arbitrary JVMs. (Tomoko Uchida, Dawid Weiss)
diff --git a/lucene/core/src/java/org/apache/lucene/search/HitQueue.java b/lucene/core/src/java/org/apache/lucene/search/HitQueue.java
index 9998452..dc2a7e5 100644
--- a/lucene/core/src/java/org/apache/lucene/search/HitQueue.java
+++ b/lucene/core/src/java/org/apache/lucene/search/HitQueue.java
@@ -76,7 +76,10 @@ public final class HitQueue extends PriorityQueue<ScoreDoc> {
 
   @Override
   protected final boolean lessThan(ScoreDoc hitA, ScoreDoc hitB) {
-    if (hitA.score == hitB.score) return hitA.doc > hitB.doc;
-    else return hitA.score < hitB.score;
+    if (hitA.score == hitB.score) {
+      return hitA.doc > hitB.doc;
+    } else {
+      return hitA.score < hitB.score;
+    }
   }
 }
diff --git a/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java b/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java
index a9835a0..39a67ff 100644
--- a/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java
+++ b/lucene/core/src/java/org/apache/lucene/store/NIOFSDirectory.java
@@ -177,9 +177,8 @@ public class NIOFSDirectory extends FSDirectory {
           b.limit(b.position() + toRead);
           assert b.remaining() == toRead;
           final int i = channel.read(b, pos);
-          if (i
-              < 0) { // be defensive here, even though we checked before hand, something could have
-            // changed
+          if (i < 0) {
+            // be defensive here, even though we checked before hand, something could have changed
             throw new EOFException(
                 "read past EOF: "
                     + this
@@ -191,7 +190,8 @@ public class NIOFSDirectory extends FSDirectory {
                     + end);
           }
           assert i > 0
-              : "FileChannel.read with non zero-length bb.remaining() must always read at least one byte (FileChannel is in blocking mode, see spec of ReadableByteChannel)";
+              : "FileChannel.read with non zero-length bb.remaining() must always read at least "
+                  + "one byte (FileChannel is in blocking mode, see spec of ReadableByteChannel)";
           pos += i;
           readLength -= i;
         }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java
index f680385..56a2d3d 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.FieldComparator;
@@ -33,14 +32,14 @@ import org.apache.lucene.search.SortField;
 import org.apache.lucene.util.FixedBitSet;
 
 /**
- * This collector specializes in collecting the most relevant document (group head) for each
- * group that matches the query.
+ * This collector specializes in collecting the most relevant document (group head) for each group
+ * that matches the query.
  *
- * Clients should create new collectors by calling {@link #newCollector(GroupSelector, Sort)}
+ * <p>Clients should create new collectors by calling {@link #newCollector(GroupSelector, Sort)}
  *
  * @lucene.experimental
  */
-@SuppressWarnings({"unchecked","rawtypes"})
+@SuppressWarnings({"unchecked", "rawtypes"})
 public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
 
   private final GroupSelector<T> groupSelector;
@@ -56,13 +55,15 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
 
   /**
    * Create a new AllGroupHeadsCollector based on the type of within-group Sort required
+   *
    * @param selector a GroupSelector to define the groups
-   * @param sort     the within-group sort to use to choose the group head document
-   * @param <T>      the group value type
+   * @param sort the within-group sort to use to choose the group head document
+   * @param <T> the group value type
    */
   public static <T> AllGroupHeadsCollector<T> newCollector(GroupSelector<T> selector, Sort sort) {
-    if (sort.equals(Sort.RELEVANCE))
+    if (sort.equals(Sort.RELEVANCE)) {
       return new ScoringGroupHeadsCollector<>(selector, sort);
+    }
     return new SortingGroupHeadsCollector<>(selector, sort);
   }
 
@@ -93,7 +94,8 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
   }
 
   /**
-   * @return an int array containing all group heads. The size of the array is equal to number of collected unique groups.
+   * @return an int array containing all group heads. The size of the array is equal to number of
+   *     collected unique groups.
    */
   public int[] retrieveGroupHeads() {
     Collection<? extends GroupHead<T>> groupHeads = getCollectedGroupHeads();
@@ -107,16 +109,13 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     return docHeads;
   }
 
-  /**
-   * @return the number of group heads found for a query.
-   */
+  /** @return the number of group heads found for a query. */
   public int groupHeadsSize() {
     return getCollectedGroupHeads().size();
   }
 
   /**
-   * Returns the collected group heads.
-   * Subsequent calls should return the same group heads.
+   * Returns the collected group heads. Subsequent calls should return the same group heads.
    *
    * @return the collected group heads
    */
@@ -179,49 +178,46 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
   /**
    * Create a new GroupHead for the given group value, initialized with a doc, context and scorer
    */
-  protected abstract GroupHead<T> newGroupHead(int doc, T value, LeafReaderContext context, Scorable scorer) throws IOException;
+  protected abstract GroupHead<T> newGroupHead(
+      int doc, T value, LeafReaderContext context, Scorable scorer) throws IOException;
 
   /**
-   * Represents a group head. A group head is the most relevant document for a particular group.
-   * The relevancy is based is usually based on the sort.
+   * Represents a group head. A group head is the most relevant document for a particular group. The
+   * relevancy is based is usually based on the sort.
    *
-   * The group head contains a group value with its associated most relevant document id.
+   * <p>The group head contains a group value with its associated most relevant document id.
    */
-  public static abstract class GroupHead<T> {
+  public abstract static class GroupHead<T> {
 
     public final T groupValue;
     public int doc;
 
     protected int docBase;
 
-    /**
-     * Create a new GroupHead for the given value
-     */
+    /** Create a new GroupHead for the given value */
     protected GroupHead(T groupValue, int doc, int docBase) {
       this.groupValue = groupValue;
       this.doc = doc + docBase;
       this.docBase = docBase;
     }
 
-    /**
-     * Called for each segment
-     */
+    /** Called for each segment */
     protected void setNextReader(LeafReaderContext ctx) throws IOException {
       this.docBase = ctx.docBase;
     }
 
-    /**
-     * Called for each segment
-     */
+    /** Called for each segment */
     protected abstract void setScorer(Scorable scorer) throws IOException;
 
     /**
-     * Compares the specified document for a specified comparator against the current most relevant document.
+     * Compares the specified document for a specified comparator against the current most relevant
+     * document.
      *
      * @param compIDX The comparator index of the specified comparator.
      * @param doc The specified document.
-     * @return -1 if the specified document wasn't competitive against the current most relevant document, 1 if the
-     *         specified document was competitive against the current most relevant document. Otherwise 0.
+     * @return -1 if the specified document wasn't competitive against the current most relevant
+     *     document, 1 if the specified document was competitive against the current most relevant
+     *     document. Otherwise 0.
      * @throws IOException If I/O related errors occur
      */
     protected abstract int compare(int compIDX, int doc) throws IOException;
@@ -233,12 +229,9 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
      * @throws IOException If I/O related errors occur
      */
     protected abstract void updateDocHead(int doc) throws IOException;
-
   }
 
-  /**
-   * General implementation using a {@link FieldComparator} to select the group head
-   */
+  /** General implementation using a {@link FieldComparator} to select the group head */
   private static class SortingGroupHeadsCollector<T> extends AllGroupHeadsCollector<T> {
 
     protected SortingGroupHeadsCollector(GroupSelector<T> selector, Sort sort) {
@@ -246,7 +239,8 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     }
 
     @Override
-    protected GroupHead<T> newGroupHead(int doc, T value, LeafReaderContext ctx, Scorable scorer) throws IOException {
+    protected GroupHead<T> newGroupHead(int doc, T value, LeafReaderContext ctx, Scorable scorer)
+        throws IOException {
       return new SortingGroupHead<>(sort, value, doc, ctx, scorer);
     }
   }
@@ -256,7 +250,9 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     final FieldComparator[] comparators;
     final LeafFieldComparator[] leafComparators;
 
-    protected SortingGroupHead(Sort sort, T groupValue, int doc, LeafReaderContext context, Scorable scorer) throws IOException {
+    protected SortingGroupHead(
+        Sort sort, T groupValue, int doc, LeafReaderContext context, Scorable scorer)
+        throws IOException {
       super(groupValue, doc, context.docBase);
       final SortField[] sortFields = sort.getSort();
       comparators = new FieldComparator[sortFields.length];
@@ -300,9 +296,7 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     }
   }
 
-  /**
-   * Specialized implementation for sorting by score
-   */
+  /** Specialized implementation for sorting by score */
   private static class ScoringGroupHeadsCollector<T> extends AllGroupHeadsCollector<T> {
 
     protected ScoringGroupHeadsCollector(GroupSelector<T> selector, Sort sort) {
@@ -310,7 +304,8 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     }
 
     @Override
-    protected GroupHead<T> newGroupHead(int doc, T value, LeafReaderContext context, Scorable scorer) throws IOException {
+    protected GroupHead<T> newGroupHead(
+        int doc, T value, LeafReaderContext context, Scorable scorer) throws IOException {
       return new ScoringGroupHead<>(scorer, value, doc, context.docBase);
     }
   }
@@ -320,7 +315,8 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
     private Scorable scorer;
     private float topScore;
 
-    protected ScoringGroupHead(Scorable scorer, T groupValue, int doc, int docBase) throws IOException {
+    protected ScoringGroupHead(Scorable scorer, T groupValue, int doc, int docBase)
+        throws IOException {
       super(groupValue, doc, docBase);
       assert scorer.docID() == doc;
       this.scorer = scorer;
@@ -338,8 +334,9 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
       assert compIDX == 0;
       float score = scorer.score();
       int c = Float.compare(score, topScore);
-      if (c > 0)
+      if (c > 0) {
         topScore = score;
+      }
       return c;
     }
 
@@ -348,5 +345,4 @@ public abstract class AllGroupHeadsCollector<T> extends SimpleCollector {
       this.doc = doc + docBase;
     }
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java
index 30ea490..41d6a99 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java
@@ -20,17 +20,14 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.Scorable;
 import org.apache.lucene.search.ScoreMode;
 import org.apache.lucene.search.SimpleCollector;
 
 /**
- * A collector that collects all groups that match the
- * query. Only the group value is collected, and the order
- * is undefined.  This collector does not determine
- * the most relevant document of a group.
+ * A collector that collects all groups that match the query. Only the group value is collected, and
+ * the order is undefined. This collector does not determine the most relevant document of a group.
  *
  * @lucene.experimental
  */
@@ -42,6 +39,7 @@ public class AllGroupsCollector<T> extends SimpleCollector {
 
   /**
    * Create a new AllGroupsCollector
+   *
    * @param groupSelector the GroupSelector to determine groups
    */
   public AllGroupsCollector(GroupSelector<T> groupSelector) {
@@ -49,8 +47,10 @@ public class AllGroupsCollector<T> extends SimpleCollector {
   }
 
   /**
-   * Returns the total number of groups for the executed search.
-   * This is a convenience method. The following code snippet has the same effect: <pre>getGroups().size()</pre>
+   * Returns the total number of groups for the executed search. This is a convenience method. The
+   * following code snippet has the same effect:
+   *
+   * <pre>getGroups().size()</pre>
    *
    * @return The total number of groups for the executed search
    */
@@ -60,8 +60,8 @@ public class AllGroupsCollector<T> extends SimpleCollector {
 
   /**
    * Returns the group values
-   * <p>
-   * This is an unordered collections of group values.
+   *
+   * <p>This is an unordered collections of group values.
    *
    * @return the group values
    */
@@ -80,8 +80,9 @@ public class AllGroupsCollector<T> extends SimpleCollector {
   @Override
   public void collect(int doc) throws IOException {
     groupSelector.advanceTo(doc);
-    if (groups.contains(groupSelector.currentValue()))
+    if (groups.contains(groupSelector.currentValue())) {
       return;
+    }
     groups.add(groupSelector.copyValue());
   }
 
@@ -89,4 +90,4 @@ public class AllGroupsCollector<T> extends SimpleCollector {
   public ScoreMode scoreMode() {
     return ScoreMode.COMPLETE_NO_SCORES; // the result is unaffected by relevancy
   }
-}
\ No newline at end of file
+}
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
index bbeb2ee..226aca0 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/BlockGroupingCollector.java
@@ -17,7 +17,6 @@
 package org.apache.lucene.search.grouping;
 
 import java.io.IOException;
-
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.DocIdSetIterator;
@@ -40,29 +39,22 @@ import org.apache.lucene.util.ArrayUtil;
 import org.apache.lucene.util.PriorityQueue;
 
 // TODO: this sentence is too long for the class summary.
-/** BlockGroupingCollector performs grouping with a
- *  single pass collector, as long as you are grouping by a
- *  doc block field, ie all documents sharing a given group
- *  value were indexed as a doc block using the atomic
- *  {@link IndexWriter#addDocuments IndexWriter.addDocuments()} 
- *  or {@link IndexWriter#updateDocuments IndexWriter.updateDocuments()} 
- *  API.
+/**
+ * BlockGroupingCollector performs grouping with a single pass collector, as long as you are
+ * grouping by a doc block field, ie all documents sharing a given group value were indexed as a doc
+ * block using the atomic {@link IndexWriter#addDocuments IndexWriter.addDocuments()} or {@link
+ * IndexWriter#updateDocuments IndexWriter.updateDocuments()} API.
  *
- *  <p>This results in faster performance (~25% faster QPS)
- *  than the two-pass grouping collectors, with the tradeoff
- *  being that the documents in each group must always be
- *  indexed as a block.  This collector also fills in
- *  TopGroups.totalGroupCount without requiring the separate
- *  {@link org.apache.lucene.search.grouping.AllGroupsCollector}.  However, this collector does
- *  not fill in the groupValue of each group; this field
- *  will always be null.
+ * <p>This results in faster performance (~25% faster QPS) than the two-pass grouping collectors,
+ * with the tradeoff being that the documents in each group must always be indexed as a block. This
+ * collector also fills in TopGroups.totalGroupCount without requiring the separate {@link
+ * org.apache.lucene.search.grouping.AllGroupsCollector}. However, this collector does not fill in
+ * the groupValue of each group; this field will always be null.
  *
- *  <p><b>NOTE</b>: this collector makes no effort to verify
- *  the docs were in fact indexed as a block, so it's up to
- *  you to ensure this was the case.
+ * <p><b>NOTE</b>: this collector makes no effort to verify the docs were in fact indexed as a
+ * block, so it's up to you to ensure this was the case.
  *
- *  <p>See {@link org.apache.lucene.search.grouping} for more
- *  details including a full code example.</p>
+ * <p>See {@link org.apache.lucene.search.grouping} for more details including a full code example.
  *
  * @lucene.experimental
  */
@@ -104,14 +96,14 @@ public class BlockGroupingCollector extends SimpleCollector {
 
   private static final class OneGroup {
     LeafReaderContext readerContext;
-    //int groupOrd;
+    // int groupOrd;
     int topGroupDoc;
     int[] docs;
     float[] scores;
     int count;
     int comparatorSlot;
   }
-  
+
   // Sorts by groupSort.  Not static -- uses comparators, reversed
   private final class GroupQueue extends PriorityQueue<OneGroup> {
 
@@ -122,13 +114,15 @@ public class BlockGroupingCollector extends SimpleCollector {
     @Override
     protected boolean lessThan(final OneGroup group1, final OneGroup group2) {
 
-      //System.out.println("    ltcheck");
+      // System.out.println("    ltcheck");
       assert group1 != group2;
       assert group1.comparatorSlot != group2.comparatorSlot;
 
       final int numComparators = comparators.length;
-      for (int compIDX=0;compIDX < numComparators; compIDX++) {
-        final int c = reversed[compIDX] * comparators[compIDX].compare(group1.comparatorSlot, group2.comparatorSlot);
+      for (int compIDX = 0; compIDX < numComparators; compIDX++) {
+        final int c =
+            reversed[compIDX]
+                * comparators[compIDX].compare(group1.comparatorSlot, group2.comparatorSlot);
         if (c != 0) {
           // Short circuit
           return c > 0;
@@ -144,7 +138,8 @@ public class BlockGroupingCollector extends SimpleCollector {
   // group is competitive we insert into the group queue
   private void processGroup() throws IOException {
     totalGroupCount++;
-    //System.out.println("    processGroup ord=" + lastGroupOrd + " competes=" + groupCompetes + " count=" + subDocUpto + " groupDoc=" + topGroupDoc);
+    // System.out.println("    processGroup ord=" + lastGroupOrd + " competes=" + groupCompetes + "
+    // count=" + subDocUpto + " groupDoc=" + topGroupDoc);
     if (groupCompetes) {
       if (!queueFull) {
         // Startup transient: always add a new OneGroup
@@ -158,20 +153,21 @@ public class BlockGroupingCollector extends SimpleCollector {
           pendingSubScores = new float[10];
         }
         og.readerContext = currentReaderContext;
-        //og.groupOrd = lastGroupOrd;
+        // og.groupOrd = lastGroupOrd;
         og.comparatorSlot = bottomSlot;
         final OneGroup bottomGroup = groupQueue.add(og);
-        //System.out.println("      ADD group=" + getGroupString(lastGroupOrd) + " newBottom=" + getGroupString(bottomGroup.groupOrd));
+        // System.out.println("      ADD group=" + getGroupString(lastGroupOrd) + " newBottom=" +
+        // getGroupString(bottomGroup.groupOrd));
         queueFull = groupQueue.size() == topNGroups;
         if (queueFull) {
           // Queue just became full; now set the real bottom
           // in the comparators:
           bottomSlot = bottomGroup.comparatorSlot;
-          //System.out.println("    set bottom=" + bottomSlot);
+          // System.out.println("    set bottom=" + bottomSlot);
           for (int i = 0; i < comparators.length; i++) {
             leafComparators[i].setBottom(bottomSlot);
           }
-          //System.out.println("     QUEUE FULL");
+          // System.out.println("     QUEUE FULL");
         } else {
           // Queue not full yet -- just advance bottomSlot:
           bottomSlot = groupQueue.size();
@@ -193,10 +189,10 @@ public class BlockGroupingCollector extends SimpleCollector {
           pendingSubScores = savScores;
         }
         og.readerContext = currentReaderContext;
-        //og.groupOrd = lastGroupOrd;
+        // og.groupOrd = lastGroupOrd;
         bottomSlot = groupQueue.updateTop().comparatorSlot;
 
-        //System.out.println("    set bottom=" + bottomSlot);
+        // System.out.println("    set bottom=" + bottomSlot);
         for (int i = 0; i < comparators.length; i++) {
           leafComparators[i].setBottom(bottomSlot);
         }
@@ -208,22 +204,17 @@ public class BlockGroupingCollector extends SimpleCollector {
   /**
    * Create the single pass collector.
    *
-   *  @param groupSort The {@link Sort} used to sort the
-   *    groups.  The top sorted document within each group
-   *    according to groupSort, determines how that group
-   *    sorts against other groups.  This must be non-null,
-   *    ie, if you want to groupSort by relevance use
-   *    Sort.RELEVANCE.
-   *  @param topNGroups How many top groups to keep.
-   *  @param needsScores true if the collected documents
-   *    require scores, either because relevance is included
-   *    in the withinGroupSort or because you plan to pass true
-   *    for either getSscores or getMaxScores to {@link
-   *    #getTopGroups}
-   *  @param lastDocPerGroup a {@link Weight} that marks the
-   *    last document in each group.
+   * @param groupSort The {@link Sort} used to sort the groups. The top sorted document within each
+   *     group according to groupSort, determines how that group sorts against other groups. This
+   *     must be non-null, ie, if you want to groupSort by relevance use Sort.RELEVANCE.
+   * @param topNGroups How many top groups to keep.
+   * @param needsScores true if the collected documents require scores, either because relevance is
+   *     included in the withinGroupSort or because you plan to pass true for either getSscores or
+   *     getMaxScores to {@link #getTopGroups}
+   * @param lastDocPerGroup a {@link Weight} that marks the last document in each group.
    */
-  public BlockGroupingCollector(Sort groupSort, int topNGroups, boolean needsScores, Weight lastDocPerGroup) {
+  public BlockGroupingCollector(
+      Sort groupSort, int topNGroups, boolean needsScores, Weight lastDocPerGroup) {
 
     if (topNGroups < 1) {
       throw new IllegalArgumentException("topNGroups must be >= 1 (got " + topNGroups + ")");
@@ -239,7 +230,7 @@ public class BlockGroupingCollector extends SimpleCollector {
     this.lastDocPerGroup = lastDocPerGroup;
 
     this.groupSort = groupSort;
-    
+
     this.topNGroups = topNGroups;
 
     final SortField[] sortFields = groupSort.getSort();
@@ -259,29 +250,26 @@ public class BlockGroupingCollector extends SimpleCollector {
   // typically they will be presented as a "single" result
   // in the UI?
 
-  /** Returns the grouped results.  Returns null if the
-   *  number of groups collected is &lt;= groupOffset.
+  /**
+   * Returns the grouped results. Returns null if the number of groups collected is &lt;=
+   * groupOffset.
    *
-   *  <p><b>NOTE</b>: This collector is unable to compute
-   *  the groupValue per group so it will always be null.
-   *  This is normally not a problem, as you can obtain the
-   *  value just like you obtain other values for each
-   *  matching document (eg, via stored fields, via
-   *  DocValues, etc.)
+   * <p><b>NOTE</b>: This collector is unable to compute the groupValue per group so it will always
+   * be null. This is normally not a problem, as you can obtain the value just like you obtain other
+   * values for each matching document (eg, via stored fields, via DocValues, etc.)
    *
-   *  @param withinGroupSort The {@link Sort} used to sort
-   *    documents within each group.
-   *  @param groupOffset Which group to start from
-   *  @param withinGroupOffset Which document to start from
-   *    within each group
-   *  @param maxDocsPerGroup How many top documents to keep
-   *     within each group.
+   * @param withinGroupSort The {@link Sort} used to sort documents within each group.
+   * @param groupOffset Which group to start from
+   * @param withinGroupOffset Which document to start from within each group
+   * @param maxDocsPerGroup How many top documents to keep within each group.
    */
-  public TopGroups<?> getTopGroups(Sort withinGroupSort, int groupOffset, int withinGroupOffset, int maxDocsPerGroup) throws IOException {
+  public TopGroups<?> getTopGroups(
+      Sort withinGroupSort, int groupOffset, int withinGroupOffset, int maxDocsPerGroup)
+      throws IOException {
 
-    //if (queueFull) {
-    //System.out.println("getTopGroups groupOffset=" + groupOffset + " topNGroups=" + topNGroups);
-    //}
+    // if (queueFull) {
+    // System.out.println("getTopGroups groupOffset=" + groupOffset + " topNGroups=" + topNGroups);
+    // }
     if (subDocUpto != 0) {
       processGroup();
     }
@@ -294,9 +282,9 @@ public class BlockGroupingCollector extends SimpleCollector {
 
     float maxScore = Float.MIN_VALUE;
 
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     final GroupDocs<Object>[] groups = new GroupDocs[groupQueue.size() - groupOffset];
-    for(int downTo=groupQueue.size()-groupOffset-1;downTo>=0;downTo--) {
+    for (int downTo = groupQueue.size() - groupOffset - 1; downTo >= 0; downTo--) {
       final OneGroup og = groupQueue.pop();
 
       // At this point we hold all docs w/ in each group,
@@ -305,18 +293,21 @@ public class BlockGroupingCollector extends SimpleCollector {
       if (withinGroupSort.equals(Sort.RELEVANCE)) {
         // Sort by score
         if (!needsScores) {
-          throw new IllegalArgumentException("cannot sort by relevance within group: needsScores=false");
+          throw new IllegalArgumentException(
+              "cannot sort by relevance within group: needsScores=false");
         }
         collector = TopScoreDocCollector.create(maxDocsPerGroup, Integer.MAX_VALUE);
       } else {
         // Sort by fields
-        collector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, Integer.MAX_VALUE); // TODO: disable exact counts?
+        collector =
+            TopFieldCollector.create(
+                withinGroupSort, maxDocsPerGroup, Integer.MAX_VALUE); // TODO: disable exact counts?
       }
 
       float groupMaxScore = needsScores ? Float.NEGATIVE_INFINITY : Float.NaN;
       LeafCollector leafCollector = collector.getLeafCollector(og.readerContext);
       leafCollector.setScorer(fakeScorer);
-      for(int docIDX=0;docIDX<og.count;docIDX++) {
+      for (int docIDX = 0; docIDX < og.count; docIDX++) {
         final int doc = og.docs[docIDX];
         fakeScorer.doc = doc;
         if (needsScores) {
@@ -330,7 +321,7 @@ public class BlockGroupingCollector extends SimpleCollector {
       final Object[] groupSortValues;
 
       groupSortValues = new Comparable<?>[comparators.length];
-      for(int sortFieldIDX=0;sortFieldIDX<comparators.length;sortFieldIDX++) {
+      for (int sortFieldIDX = 0; sortFieldIDX < comparators.length; sortFieldIDX++) {
         groupSortValues[sortFieldIDX] = comparators[sortFieldIDX].value(og.comparatorSlot);
       }
 
@@ -338,12 +329,14 @@ public class BlockGroupingCollector extends SimpleCollector {
 
       // TODO: we could aggregate scores across children
       // by Sum/Avg instead of passing NaN:
-      groups[downTo] = new GroupDocs<>(Float.NaN,
-                                             groupMaxScore,
-                                             new TotalHits(og.count, TotalHits.Relation.EQUAL_TO),
-                                             topDocs.scoreDocs,
-                                             null,
-                                             groupSortValues);
+      groups[downTo] =
+          new GroupDocs<>(
+              Float.NaN,
+              groupMaxScore,
+              new TotalHits(og.count, TotalHits.Relation.EQUAL_TO),
+              topDocs.scoreDocs,
+              null,
+              groupSortValues);
       maxScore = Math.max(maxScore, groupMaxScore);
     }
 
@@ -355,10 +348,15 @@ public class BlockGroupingCollector extends SimpleCollector {
     }
     */
 
-    return new TopGroups<>(new TopGroups<>(groupSort.getSort(),
-                                       withinGroupSort.getSort(),
-                                       totalHitCount, totalGroupedHitCount, groups, maxScore),
-                         totalGroupCount);
+    return new TopGroups<>(
+        new TopGroups<>(
+            groupSort.getSort(),
+            withinGroupSort.getSort(),
+            totalHitCount,
+            totalGroupedHitCount,
+            groups,
+            maxScore),
+        totalGroupCount);
   }
 
   @Override
@@ -380,7 +378,7 @@ public class BlockGroupingCollector extends SimpleCollector {
         processGroup();
       }
       groupEndDocID = lastDocPerGroupBits.advance(doc);
-      //System.out.println("  adv " + groupEndDocID + " " + lastDocPerGroupBits);
+      // System.out.println("  adv " + groupEndDocID + " " + lastDocPerGroupBits);
       subDocUpto = 0;
       groupCompetes = !queueFull;
     }
@@ -404,15 +402,15 @@ public class BlockGroupingCollector extends SimpleCollector {
       if (subDocUpto == 1) {
         assert !queueFull;
 
-        //System.out.println("    init copy to bottomSlot=" + bottomSlot);
+        // System.out.println("    init copy to bottomSlot=" + bottomSlot);
         for (LeafFieldComparator fc : leafComparators) {
           fc.copy(bottomSlot, doc);
           fc.setBottom(bottomSlot);
-        }        
+        }
         topGroupDoc = doc;
       } else {
         // Compare to bottomSlot
-        for (int compIDX = 0;; compIDX++) {
+        for (int compIDX = 0; ; compIDX++) {
           final int c = reversed[compIDX] * leafComparators[compIDX].compareBottom(doc);
           if (c < 0) {
             // Definitely not competitive -- done
@@ -428,25 +426,25 @@ public class BlockGroupingCollector extends SimpleCollector {
           }
         }
 
-        //System.out.println("       best w/in group!");
-        
+        // System.out.println("       best w/in group!");
+
         for (LeafFieldComparator fc : leafComparators) {
           fc.copy(bottomSlot, doc);
           // Necessary because some comparators cache
           // details of bottom slot; this forces them to
           // re-cache:
           fc.setBottom(bottomSlot);
-        }        
+        }
         topGroupDoc = doc;
       }
     } else {
       // We're not sure this group will make it into the
       // queue yet
-      for (int compIDX = 0;; compIDX++) {
+      for (int compIDX = 0; ; compIDX++) {
         final int c = reversed[compIDX] * leafComparators[compIDX].compareBottom(doc);
         if (c < 0) {
           // Definitely not competitive -- done
-          //System.out.println("    doc doesn't compete w/ top groups");
+          // System.out.println("    doc doesn't compete w/ top groups");
           return;
         } else if (c > 0) {
           // Definitely competitive.
@@ -455,7 +453,7 @@ public class BlockGroupingCollector extends SimpleCollector {
           // Ties with bottom, except we know this docID is
           // > docID in the queue (docs are visited in
           // order), so not competitive:
-          //System.out.println("    doc doesn't compete w/ top groups");
+          // System.out.println("    doc doesn't compete w/ top groups");
           return;
         }
       }
@@ -468,7 +466,7 @@ public class BlockGroupingCollector extends SimpleCollector {
         fc.setBottom(bottomSlot);
       }
       topGroupDoc = doc;
-      //System.out.println("        doc competes w/ top groups");
+      // System.out.println("        doc competes w/ top groups");
     }
   }
 
@@ -479,7 +477,7 @@ public class BlockGroupingCollector extends SimpleCollector {
     }
     subDocUpto = 0;
     docBase = readerContext.docBase;
-    //System.out.println("setNextReader base=" + docBase + " r=" + readerContext.reader);
+    // System.out.println("setNextReader base=" + docBase + " r=" + readerContext.reader);
     Scorer s = lastDocPerGroup.scorer(readerContext);
     if (s == null) {
       lastDocPerGroupBits = null;
@@ -489,7 +487,7 @@ public class BlockGroupingCollector extends SimpleCollector {
     groupEndDocID = -1;
 
     currentReaderContext = readerContext;
-    for (int i=0; i<comparators.length; i++) {
+    for (int i = 0; i < comparators.length; i++) {
       leafComparators[i] = comparators[i].getLeafComparator(readerContext);
     }
   }
@@ -513,6 +511,5 @@ public class BlockGroupingCollector extends SimpleCollector {
     public float score() {
       return score;
     }
-
   }
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java
index 5e4bf14..a6a3c32 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/CollectedSearchGroup.java
@@ -18,10 +18,12 @@ package org.apache.lucene.search.grouping;
 
 import org.apache.lucene.search.FieldComparator; // javadocs
 
-/** 
- * Expert: representation of a group in {@link FirstPassGroupingCollector},
- * tracking the top doc and {@link FieldComparator} slot.
- * @lucene.internal */
+/**
+ * Expert: representation of a group in {@link FirstPassGroupingCollector}, tracking the top doc and
+ * {@link FieldComparator} slot.
+ *
+ * @lucene.internal
+ */
 public class CollectedSearchGroup<T> extends SearchGroup<T> {
   int topDoc;
   int comparatorSlot;
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DistinctValuesCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DistinctValuesCollector.java
index ee38159..0d7d3e8 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DistinctValuesCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DistinctValuesCollector.java
@@ -22,13 +22,13 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.ScoreMode;
 import org.apache.lucene.search.SimpleCollector;
 
 /**
- * A second pass grouping collector that keeps track of distinct values for a specified field for the top N group.
+ * A second pass grouping collector that keeps track of distinct values for a specified field for
+ * the top N group.
  *
  * @lucene.experimental
  */
@@ -36,12 +36,15 @@ public class DistinctValuesCollector<T, R> extends SecondPassGroupingCollector<T
 
   /**
    * Create a DistinctValuesCollector
+   *
    * @param groupSelector the group selector to determine the top-level groups
-   * @param groups        the top-level groups to collect for
+   * @param groups the top-level groups to collect for
    * @param valueSelector a group selector to determine which values to collect per-group
    */
-  public DistinctValuesCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups,
-                                       GroupSelector<R> valueSelector) {
+  public DistinctValuesCollector(
+      GroupSelector<T> groupSelector,
+      Collection<SearchGroup<T>> groups,
+      GroupSelector<R> valueSelector) {
     super(groupSelector, groups, new DistinctValuesReducer<>(valueSelector));
   }
 
@@ -58,12 +61,9 @@ public class DistinctValuesCollector<T, R> extends SecondPassGroupingCollector<T
     public void collect(int doc) throws IOException {
       if (valueSelector.advanceTo(doc) == GroupSelector.State.ACCEPT) {
         R value = valueSelector.currentValue();
-        if (values.contains(value) == false)
-          values.add(valueSelector.copyValue());
-      }
-      else {
-        if (values.contains(null) == false)
-          values.add(null);
+        if (values.contains(value) == false) values.add(valueSelector.copyValue());
+      } else {
+        if (values.contains(null) == false) values.add(null);
       }
     }
 
@@ -113,8 +113,8 @@ public class DistinctValuesCollector<T, R> extends SecondPassGroupingCollector<T
   }
 
   /**
-   * Returned by {@link DistinctValuesCollector#getGroups()},
-   * representing the value and set of distinct values for the group.
+   * Returned by {@link DistinctValuesCollector#getGroups()}, representing the value and set of
+   * distinct values for the group.
    */
   public static class GroupCount<T, R> {
 
@@ -126,5 +126,4 @@ public class DistinctValuesCollector<T, R> extends SecondPassGroupingCollector<T
       this.uniqueValues = values;
     }
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRange.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRange.java
index df34f6b..3ca4b8d 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRange.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRange.java
@@ -20,8 +20,7 @@ package org.apache.lucene.search.grouping;
 import java.util.Objects;
 
 /**
- * Represents a contiguous range of double values, with an inclusive minimum and
- * exclusive maximum
+ * Represents a contiguous range of double values, with an inclusive minimum and exclusive maximum
  */
 public class DoubleRange {
 
@@ -30,9 +29,7 @@ public class DoubleRange {
   /** The exclusive maximum value of this range */
   public double max;
 
-  /**
-   * Creates a new double range, running from {@code min} inclusive to {@code max} exclusive
-   */
+  /** Creates a new double range, running from {@code min} inclusive to {@code max} exclusive */
   public DoubleRange(double min, double max) {
     this.min = min;
     this.max = max;
@@ -48,8 +45,7 @@ public class DoubleRange {
     if (this == o) return true;
     if (o == null || getClass() != o.getClass()) return false;
     DoubleRange that = (DoubleRange) o;
-    return Double.compare(that.min, min) == 0 &&
-        Double.compare(that.max, max) == 0;
+    return Double.compare(that.min, min) == 0 && Double.compare(that.max, max) == 0;
   }
 
   @Override
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeFactory.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeFactory.java
index 3ea4606..6a4c957 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeFactory.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeFactory.java
@@ -17,9 +17,7 @@
 
 package org.apache.lucene.search.grouping;
 
-/**
- * Groups double values into ranges
- */
+/** Groups double values into ranges */
 public class DoubleRangeFactory {
 
   private final double min;
@@ -28,11 +26,12 @@ public class DoubleRangeFactory {
 
   /**
    * Creates a new DoubleRangeFactory
-   * @param min     a minimum value; all doubles below this value are grouped into a single range
-   * @param width   a standard width; all ranges between {@code min} and {@code max} are this wide,
-   *                with the exception of the final range which may be up to this width.  Ranges
-   *                are inclusive at the lower end, and exclusive at the upper end.
-   * @param max     a maximum value; all doubles above this value are grouped into a single range
+   *
+   * @param min a minimum value; all doubles below this value are grouped into a single range
+   * @param width a standard width; all ranges between {@code min} and {@code max} are this wide,
+   *     with the exception of the final range which may be up to this width. Ranges are inclusive
+   *     at the lower end, and exclusive at the upper end.
+   * @param max a maximum value; all doubles above this value are grouped into a single range
    */
   public DoubleRangeFactory(double min, double width, double max) {
     this.min = min;
@@ -42,12 +41,14 @@ public class DoubleRangeFactory {
 
   /**
    * Finds the DoubleRange that a value should be grouped into
+   *
    * @param value the value to group
    * @param reuse an existing DoubleRange object to reuse
    */
   public DoubleRange getRange(double value, DoubleRange reuse) {
-    if (reuse == null)
+    if (reuse == null) {
       reuse = new DoubleRange(Double.MIN_VALUE, Double.MAX_VALUE);
+    }
     if (value < min) {
       reuse.max = min;
       reuse.min = Double.MIN_VALUE;
@@ -63,5 +64,4 @@ public class DoubleRangeFactory {
     reuse.max = reuse.min + width;
     return reuse;
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeGroupSelector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeGroupSelector.java
index 4a6a65a..bacf9a6 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeGroupSelector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/DoubleRangeGroupSelector.java
@@ -21,15 +21,12 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.DoubleValues;
 import org.apache.lucene.search.DoubleValuesSource;
 import org.apache.lucene.search.Scorable;
 
-/**
- * A GroupSelector implementation that groups documents by double values
- */
+/** A GroupSelector implementation that groups documents by double values */
 public class DoubleRangeGroupSelector extends GroupSelector<DoubleRange> {
 
   private final DoubleValuesSource source;
@@ -45,8 +42,10 @@ public class DoubleRangeGroupSelector extends GroupSelector<DoubleRange> {
 
   /**
    * Creates a new DoubleRangeGroupSelector
-   * @param source        a DoubleValuesSource to retrieve double values per document
-   * @param rangeFactory  a DoubleRangeFactory that defines how to group the double values into range buckets
+   *
+   * @param source a DoubleValuesSource to retrieve double values per document
+   * @param rangeFactory a DoubleRangeFactory that defines how to group the double values into range
+   *     buckets
    */
   public DoubleRangeGroupSelector(DoubleValuesSource source, DoubleRangeFactory rangeFactory) {
     this.source = source;
@@ -91,10 +90,11 @@ public class DoubleRangeGroupSelector extends GroupSelector<DoubleRange> {
     inSecondPass = new HashSet<>();
     includeEmpty = false;
     for (SearchGroup<DoubleRange> group : searchGroups) {
-      if (group.groupValue == null)
+      if (group.groupValue == null) {
         includeEmpty = true;
-      else
+      } else {
         inSecondPass.add(group.groupValue);
+      }
     }
   }
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/FirstPassGroupingCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/FirstPassGroupingCollector.java
index f5b0597..6873eb3 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/FirstPassGroupingCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/FirstPassGroupingCollector.java
@@ -22,7 +22,6 @@ import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.TreeSet;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.FieldComparator;
 import org.apache.lucene.search.LeafFieldComparator;
@@ -32,12 +31,11 @@ import org.apache.lucene.search.SimpleCollector;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
 
-/** FirstPassGroupingCollector is the first of two passes necessary
- *  to collect grouped hits.  This pass gathers the top N sorted
- *  groups. Groups are defined by a {@link GroupSelector}
+/**
+ * FirstPassGroupingCollector is the first of two passes necessary to collect grouped hits. This
+ * pass gathers the top N sorted groups. Groups are defined by a {@link GroupSelector}
  *
- *  <p>See {@link org.apache.lucene.search.grouping} for more
- *  details including a full code example.</p>
+ * <p>See {@link org.apache.lucene.search.grouping} for more details including a full code example.
  *
  * @lucene.experimental
  */
@@ -56,6 +54,7 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
   // Set once we reach topNGroups unique groups:
   /** @lucene.internal */
   protected TreeSet<CollectedSearchGroup<T>> orderedGroups;
+
   private int docBase;
   private int spareSlot;
 
@@ -63,16 +62,14 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
    * Create the first pass collector.
    *
    * @param groupSelector a GroupSelector used to defined groups
-   * @param groupSort The {@link Sort} used to sort the
-   *    groups.  The top sorted document within each group
-   *    according to groupSort, determines how that group
-   *    sorts against other groups.  This must be non-null,
-   *    ie, if you want to groupSort by relevance use
-   *    Sort.RELEVANCE.
+   * @param groupSort The {@link Sort} used to sort the groups. The top sorted document within each
+   *     group according to groupSort, determines how that group sorts against other groups. This
+   *     must be non-null, ie, if you want to groupSort by relevance use Sort.RELEVANCE.
    * @param topNGroups How many top groups to keep.
    */
   @SuppressWarnings({"unchecked", "rawtypes"})
-  public FirstPassGroupingCollector(GroupSelector<T> groupSelector, Sort groupSort, int topNGroups) {
+  public FirstPassGroupingCollector(
+      GroupSelector<T> groupSelector, Sort groupSort, int topNGroups) {
     this.groupSelector = groupSelector;
     if (topNGroups < 1) {
       throw new IllegalArgumentException("topNGroups must be >= 1 (got " + topNGroups + ")");
@@ -91,7 +88,8 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
     for (int i = 0; i < sortFields.length; i++) {
       final SortField sortField = sortFields[i];
 
-      // use topNGroups + 1 so we have a spare slot to use for comparing (tracked by this.spareSlot):
+      // use topNGroups + 1 so we have a spare slot to use for comparing (tracked by
+      // this.spareSlot):
       comparators[i] = sortField.getComparator(topNGroups + 1, i);
       reversed[i] = sortField.getReverse() ? -1 : 1;
     }
@@ -106,16 +104,16 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
   }
 
   /**
-   * Returns top groups, starting from offset.  This may
-   * return null, if no groups were collected, or if the
-   * number of unique groups collected is &lt;= offset.
+   * Returns top groups, starting from offset. This may return null, if no groups were collected, or
+   * if the number of unique groups collected is &lt;= offset.
    *
    * @param groupOffset The offset in the collected groups
    * @return top groups, starting from offset
    */
   public Collection<SearchGroup<T>> getTopGroups(int groupOffset) throws IOException {
 
-    //System.out.println("FP.getTopGroups groupOffset=" + groupOffset + " fillFields=" + fillFields + " groupMap.size()=" + groupMap.size());
+    // System.out.println("FP.getTopGroups groupOffset=" + groupOffset + " fillFields=" + fillFields
+    // + " groupMap.size()=" + groupMap.size());
 
     if (groupOffset < 0) {
       throw new IllegalArgumentException("groupOffset must be >= 0 (got " + groupOffset + ")");
@@ -132,20 +130,22 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
     final Collection<SearchGroup<T>> result = new ArrayList<>();
     int upto = 0;
     final int sortFieldCount = comparators.length;
-    for(CollectedSearchGroup<T> group : orderedGroups) {
+    for (CollectedSearchGroup<T> group : orderedGroups) {
       if (upto++ < groupOffset) {
         continue;
       }
-      // System.out.println("  group=" + (group.groupValue == null ? "null" : group.groupValue.toString()));
+      // System.out.println("  group=" + (group.groupValue == null ? "null" :
+      // group.groupValue.toString()));
       SearchGroup<T> searchGroup = new SearchGroup<>();
       searchGroup.groupValue = group.groupValue;
       searchGroup.sortValues = new Object[sortFieldCount];
-      for(int sortFieldIDX=0;sortFieldIDX<sortFieldCount;sortFieldIDX++) {
-        searchGroup.sortValues[sortFieldIDX] = comparators[sortFieldIDX].value(group.comparatorSlot);
+      for (int sortFieldIDX = 0; sortFieldIDX < sortFieldCount; sortFieldIDX++) {
+        searchGroup.sortValues[sortFieldIDX] =
+            comparators[sortFieldIDX].value(group.comparatorSlot);
       }
       result.add(searchGroup);
     }
-    //System.out.println("  return " + result.size() + " groups");
+    // System.out.println("  return " + result.size() + " groups");
     return result;
   }
 
@@ -168,7 +168,7 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
     // Downside: if the number of unique groups is very low, this is
     // wasted effort as we will most likely be updating an existing group.
     if (orderedGroups != null) {
-      for (int compIDX = 0;; compIDX++) {
+      for (int compIDX = 0; ; compIDX++) {
         final int c = reversed[compIDX] * leafComparators[compIDX].compareBottom(doc);
         if (c < 0) {
           // Definitely not competitive. So don't even bother to continue
@@ -190,8 +190,9 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
   @Override
   public void collect(int doc) throws IOException {
 
-    if (isCompetitive(doc) == false)
+    if (isCompetitive(doc) == false) {
       return;
+    }
 
     // TODO: should we add option to mean "ignore docs that
     // don't have the group field" (instead of stuffing them
@@ -236,7 +237,7 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
       // We already tested that the document is competitive, so replace
       // the bottom group with this new group.
       final CollectedSearchGroup<T> bottomGroup = orderedGroups.pollLast();
-      assert orderedGroups.size() == topNGroups -1;
+      assert orderedGroups.size() == topNGroups - 1;
 
       groupMap.remove(bottomGroup.groupValue);
 
@@ -261,16 +262,17 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
     }
 
     // Update existing group:
-    for (int compIDX = 0;; compIDX++) {
+    for (int compIDX = 0; ; compIDX++) {
       leafComparators[compIDX].copy(spareSlot, doc);
 
-      final int c = reversed[compIDX] * comparators[compIDX].compare(group.comparatorSlot, spareSlot);
+      final int c =
+          reversed[compIDX] * comparators[compIDX].compare(group.comparatorSlot, spareSlot);
       if (c < 0) {
         // Definitely not competitive.
         return;
       } else if (c > 0) {
         // Definitely competitive; set remaining comparators:
-        for (int compIDX2=compIDX+1; compIDX2<comparators.length; compIDX2++) {
+        for (int compIDX2 = compIDX + 1; compIDX2 < comparators.length; compIDX2++) {
           leafComparators[compIDX2].copy(spareSlot, doc);
         }
         break;
@@ -289,7 +291,7 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
     if (orderedGroups != null) {
       prevLast = orderedGroups.last();
       orderedGroups.remove(group);
-      assert orderedGroups.size() == topNGroups-1;
+      assert orderedGroups.size() == topNGroups - 1;
     } else {
       prevLast = null;
     }
@@ -306,7 +308,8 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
       orderedGroups.add(group);
       assert orderedGroups.size() == topNGroups;
       final CollectedSearchGroup<?> newLast = orderedGroups.last();
-      // If we changed the value of the last group, or changed which group was last, then update bottom:
+      // If we changed the value of the last group, or changed which group was last, then update
+      // bottom:
       if (group == newLast || prevLast != newLast) {
         for (LeafFieldComparator fc : leafComparators) {
           fc.setBottom(newLast.comparatorSlot);
@@ -316,20 +319,21 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
   }
 
   private void buildSortedSet() throws IOException {
-    final Comparator<CollectedSearchGroup<?>> comparator = new Comparator<CollectedSearchGroup<?>>() {
-      @Override
-      public int compare(CollectedSearchGroup<?> o1, CollectedSearchGroup<?> o2) {
-        for (int compIDX = 0;; compIDX++) {
-          FieldComparator<?> fc = comparators[compIDX];
-          final int c = reversed[compIDX] * fc.compare(o1.comparatorSlot, o2.comparatorSlot);
-          if (c != 0) {
-            return c;
-          } else if (compIDX == compIDXEnd) {
-            return o1.topDoc - o2.topDoc;
+    final Comparator<CollectedSearchGroup<?>> comparator =
+        new Comparator<CollectedSearchGroup<?>>() {
+          @Override
+          public int compare(CollectedSearchGroup<?> o1, CollectedSearchGroup<?> o2) {
+            for (int compIDX = 0; ; compIDX++) {
+              FieldComparator<?> fc = comparators[compIDX];
+              final int c = reversed[compIDX] * fc.compare(o1.comparatorSlot, o2.comparatorSlot);
+              if (c != 0) {
+                return c;
+              } else if (compIDX == compIDXEnd) {
+                return o1.topDoc - o2.topDoc;
+              }
+            }
           }
-        }
-      }
-    };
+        };
 
     orderedGroups = new TreeSet<>(comparator);
     orderedGroups.addAll(groupMap.values());
@@ -343,18 +347,14 @@ public class FirstPassGroupingCollector<T> extends SimpleCollector {
   @Override
   protected void doSetNextReader(LeafReaderContext readerContext) throws IOException {
     docBase = readerContext.docBase;
-    for (int i=0; i<comparators.length; i++) {
+    for (int i = 0; i < comparators.length; i++) {
       leafComparators[i] = comparators[i].getLeafComparator(readerContext);
     }
     groupSelector.setNextReader(readerContext);
   }
 
-  /**
-   * @return the GroupSelector used for this Collector
-   */
+  /** @return the GroupSelector used for this Collector */
   public GroupSelector<T> getGroupSelector() {
     return groupSelector;
   }
-
 }
-
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupDocs.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupDocs.java
index 78861d0..9c0eccf 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupDocs.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupDocs.java
@@ -19,39 +19,43 @@ package org.apache.lucene.search.grouping;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TotalHits;
 
-/** Represents one group in the results.
- * 
- * @lucene.experimental */
+/**
+ * Represents one group in the results.
+ *
+ * @lucene.experimental
+ */
 public class GroupDocs<T> {
-  /** The groupField value for all docs in this group; this
-   *  may be null if hits did not have the groupField. */
+  /**
+   * The groupField value for all docs in this group; this may be null if hits did not have the
+   * groupField.
+   */
   public final T groupValue;
 
   /** Max score in this group */
   public final float maxScore;
 
-  /** Overall aggregated score of this group (currently only
-   *  set by join queries). */
+  /** Overall aggregated score of this group (currently only set by join queries). */
   public final float score;
 
-  /** Hits; this may be {@link
-   * org.apache.lucene.search.FieldDoc} instances if the
-   * withinGroupSort sorted by fields. */
+  /**
+   * Hits; this may be {@link org.apache.lucene.search.FieldDoc} instances if the withinGroupSort
+   * sorted by fields.
+   */
   public final ScoreDoc[] scoreDocs;
 
   /** Total hits within this group */
   public final TotalHits totalHits;
 
-  /** Matches the groupSort passed to {@link
-   *  FirstPassGroupingCollector}. */
+  /** Matches the groupSort passed to {@link FirstPassGroupingCollector}. */
   public final Object[] groupSortValues;
 
-  public GroupDocs(float score,
-                   float maxScore,
-                   TotalHits totalHits,
-                   ScoreDoc[] scoreDocs,
-                   T groupValue,
-                   Object[] groupSortValues) {
+  public GroupDocs(
+      float score,
+      float maxScore,
+      TotalHits totalHits,
+      ScoreDoc[] scoreDocs,
+      T groupValue,
+      Object[] groupSortValues) {
     this.score = score;
     this.maxScore = maxScore;
     this.totalHits = totalHits;
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupFacetCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupFacetCollector.java
index 5abd645..5dfc0d2 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupFacetCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupFacetCollector.java
@@ -23,7 +23,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.NavigableSet;
 import java.util.TreeSet;
-
 import org.apache.lucene.search.Scorable;
 import org.apache.lucene.search.ScoreMode;
 import org.apache.lucene.search.SimpleCollector;
@@ -55,17 +54,19 @@ public abstract class GroupFacetCollector extends SimpleCollector {
   }
 
   /**
-   * Returns grouped facet results that were computed over zero or more segments.
-   * Grouped facet counts are merged from zero or more segment results.
+   * Returns grouped facet results that were computed over zero or more segments. Grouped facet
+   * counts are merged from zero or more segment results.
    *
    * @param size The total number of facets to include. This is typically offset + limit
-   * @param minCount The minimum count a facet entry should have to be included in the grouped facet result
-   * @param orderByCount Whether to sort the facet entries by facet entry count. If <code>false</code> then the facets
-   *                     are sorted lexicographically in ascending order.
+   * @param minCount The minimum count a facet entry should have to be included in the grouped facet
+   *     result
+   * @param orderByCount Whether to sort the facet entries by facet entry count. If <code>false
+   *     </code> then the facets are sorted lexicographically in ascending order.
    * @return grouped facet results
    * @throws IOException If I/O related errors occur during merging segment grouped facet counts.
    */
-  public GroupedFacetResult mergeSegmentResults(int size, int minCount, boolean orderByCount) throws IOException {
+  public GroupedFacetResult mergeSegmentResults(int size, int minCount, boolean orderByCount)
+      throws IOException {
     if (segmentFacetCounts != null) {
       segmentResults.add(createSegmentResult());
       segmentFacetCounts = null; // reset
@@ -83,7 +84,8 @@ public abstract class GroupFacetCollector extends SimpleCollector {
       segments.add(segmentResult);
     }
 
-    GroupedFacetResult facetResult = new GroupedFacetResult(size, minCount, orderByCount, totalCount, missingCount);
+    GroupedFacetResult facetResult =
+        new GroupedFacetResult(size, minCount, orderByCount, totalCount, missingCount);
     while (segments.size() > 0) {
       SegmentResult segmentResult = segments.top();
       BytesRef currentFacetValue = BytesRef.deepCopyOf(segmentResult.mergeTerm);
@@ -110,8 +112,7 @@ public abstract class GroupFacetCollector extends SimpleCollector {
   protected abstract SegmentResult createSegmentResult() throws IOException;
 
   @Override
-  public void setScorer(Scorable scorer) throws IOException {
-  }
+  public void setScorer(Scorable scorer) throws IOException {}
 
   @Override
   public ScoreMode scoreMode() {
@@ -119,31 +120,32 @@ public abstract class GroupFacetCollector extends SimpleCollector {
   }
 
   /**
-   * The grouped facet result. Containing grouped facet entries, total count and total missing count.
+   * The grouped facet result. Containing grouped facet entries, total count and total missing
+   * count.
    */
   public static class GroupedFacetResult {
 
-    private final static Comparator<FacetEntry> orderByCountAndValue = new Comparator<FacetEntry>() {
-
-      @Override
-      public int compare(FacetEntry a, FacetEntry b) {
-        int cmp = b.count - a.count; // Highest count first!
-        if (cmp != 0) {
-          return cmp;
-        }
-        return a.value.compareTo(b.value);
-      }
+    private static final Comparator<FacetEntry> orderByCountAndValue =
+        new Comparator<FacetEntry>() {
 
-    };
-
-    private final static Comparator<FacetEntry> orderByValue = new Comparator<FacetEntry>() {
+          @Override
+          public int compare(FacetEntry a, FacetEntry b) {
+            int cmp = b.count - a.count; // Highest count first!
+            if (cmp != 0) {
+              return cmp;
+            }
+            return a.value.compareTo(b.value);
+          }
+        };
 
-      @Override
-      public int compare(FacetEntry a, FacetEntry b) {
-        return a.value.compareTo(b.value);
-      }
+    private static final Comparator<FacetEntry> orderByValue =
+        new Comparator<FacetEntry>() {
 
-    };
+          @Override
+          public int compare(FacetEntry a, FacetEntry b) {
+            return a.value.compareTo(b.value);
+          }
+        };
 
     private final int maxSize;
     private final NavigableSet<FacetEntry> facetEntries;
@@ -152,7 +154,8 @@ public abstract class GroupFacetCollector extends SimpleCollector {
 
     private int currentMin;
 
-    public GroupedFacetResult(int size, int minCount, boolean orderByCount, int totalCount, int totalMissingCount) {
+    public GroupedFacetResult(
+        int size, int minCount, boolean orderByCount, int totalCount, int totalMissingCount) {
       this.facetEntries = new TreeSet<>(orderByCount ? orderByCountAndValue : orderByValue);
       this.totalMissingCount = totalMissingCount;
       this.totalCount = totalCount;
@@ -180,8 +183,8 @@ public abstract class GroupFacetCollector extends SimpleCollector {
     }
 
     /**
-     * Returns a list of facet entries to be rendered based on the specified offset and limit.
-     * The facet entries are retrieved from the facet entries collected during merging.
+     * Returns a list of facet entries to be rendered based on the specified offset and limit. The
+     * facet entries are retrieved from the facet entries collected during merging.
      *
      * @param offset The offset in the collected facet entries during merging
      * @param limit The number of facets to return starting from the offset.
@@ -224,9 +227,7 @@ public abstract class GroupFacetCollector extends SimpleCollector {
     }
   }
 
-  /**
-   * Represents a facet entry with a value and a count.
-   */
+  /** Represents a facet entry with a value and a count. */
   public static class FacetEntry {
 
     private final BytesRef value;
@@ -259,30 +260,23 @@ public abstract class GroupFacetCollector extends SimpleCollector {
 
     @Override
     public String toString() {
-      return "FacetEntry{" +
-          "value=" + value.utf8ToString() +
-          ", count=" + count +
-          '}';
+      return "FacetEntry{" + "value=" + value.utf8ToString() + ", count=" + count + '}';
     }
 
-    /**
-     * @return The value of this facet entry
-     */
+    /** @return The value of this facet entry */
     public BytesRef getValue() {
       return value;
     }
 
-    /**
-     * @return The count (number of groups) of this facet entry.
-     */
+    /** @return The count (number of groups) of this facet entry. */
     public int getCount() {
       return count;
     }
   }
 
   /**
-   * Contains the local grouped segment counts for a particular segment.
-   * Each <code>SegmentResult</code> must be added together.
+   * Contains the local grouped segment counts for a particular segment. Each <code>SegmentResult
+   * </code> must be added together.
    */
   protected abstract static class SegmentResult {
 
@@ -302,12 +296,12 @@ public abstract class GroupFacetCollector extends SimpleCollector {
     }
 
     /**
-     * Go to next term in this <code>SegmentResult</code> in order to retrieve the grouped facet counts.
+     * Go to next term in this <code>SegmentResult</code> in order to retrieve the grouped facet
+     * counts.
      *
      * @throws IOException If I/O related errors occur
      */
     protected abstract void nextTerm() throws IOException;
-
   }
 
   private static class SegmentResultPriorityQueue extends PriorityQueue<SegmentResult> {
@@ -321,5 +315,4 @@ public abstract class GroupFacetCollector extends SimpleCollector {
       return a.mergeTerm.compareTo(b.mergeTerm) < 0;
     }
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupReducer.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupReducer.java
index d3fb1d9..313172a 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupReducer.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupReducer.java
@@ -21,22 +21,19 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.Collector;
 import org.apache.lucene.search.LeafCollector;
 import org.apache.lucene.search.Scorable;
 
 /**
- * Concrete implementations of this class define what to collect for individual
- * groups during the second-pass of a grouping search.
+ * Concrete implementations of this class define what to collect for individual groups during the
+ * second-pass of a grouping search.
  *
- * Each group is assigned a Collector returned by {@link #newCollector()}, and
- * {@link LeafCollector#collect(int)} is called for each document that is in
- * a group
+ * <p>Each group is assigned a Collector returned by {@link #newCollector()}, and {@link
+ * LeafCollector#collect(int)} is called for each document that is in a group
  *
  * @see SecondPassGroupingCollector
- *
  * @param <T> the type of the value used for grouping
  * @param <C> the type of {@link Collector} used to reduce each group
  */
@@ -47,7 +44,7 @@ public abstract class GroupReducer<T, C extends Collector> {
   /**
    * Define which groups should be reduced.
    *
-   * Called by {@link SecondPassGroupingCollector}
+   * <p>Called by {@link SecondPassGroupingCollector}
    */
   public void setGroups(Collection<SearchGroup<T>> groups) {
     for (SearchGroup<T> group : groups) {
@@ -55,25 +52,20 @@ public abstract class GroupReducer<T, C extends Collector> {
     }
   }
 
-  /**
-   * Whether or not this reducer requires collected documents to be scored
-   */
+  /** Whether or not this reducer requires collected documents to be scored */
   public abstract boolean needsScores();
 
-  /**
-   * Creates a new Collector for each group
-   */
+  /** Creates a new Collector for each group */
   protected abstract C newCollector();
 
-  /**
-   * Get the Collector for a given group
-   */
+  /** Get the Collector for a given group */
   public final C getCollector(T value) {
     return groups.get(value).collector;
   }
 
   /**
    * Collect a given document into a given group
+   *
    * @throws IOException on error
    */
   public final void collect(T value, int doc) throws IOException {
@@ -81,18 +73,14 @@ public abstract class GroupReducer<T, C extends Collector> {
     collector.leafCollector.collect(doc);
   }
 
-  /**
-   * Set the Scorer on all group collectors
-   */
+  /** Set the Scorer on all group collectors */
   public final void setScorer(Scorable scorer) throws IOException {
     for (GroupCollector<C> collector : groups.values()) {
       collector.leafCollector.setScorer(scorer);
     }
   }
 
-  /**
-   * Called when the parent {@link SecondPassGroupingCollector} moves to a new segment
-   */
+  /** Called when the parent {@link SecondPassGroupingCollector} moves to a new segment */
   public final void setNextReader(LeafReaderContext ctx) throws IOException {
     for (GroupCollector<C> collector : groups.values()) {
       collector.leafCollector = collector.collector.getLeafCollector(ctx);
@@ -108,5 +96,4 @@ public abstract class GroupReducer<T, C extends Collector> {
       this.collector = collector;
     }
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupSelector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupSelector.java
index 92962a4..a5e4ddc 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupSelector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupSelector.java
@@ -19,61 +19,52 @@ package org.apache.lucene.search.grouping;
 
 import java.io.IOException;
 import java.util.Collection;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.Scorable;
 
 /**
  * Defines a group, for use by grouping collectors
  *
- * A GroupSelector acts as an iterator over documents.  For each segment, clients
- * should call {@link #setNextReader(LeafReaderContext)}, and then {@link #advanceTo(int)}
- * for each matching document.
+ * <p>A GroupSelector acts as an iterator over documents. For each segment, clients should call
+ * {@link #setNextReader(LeafReaderContext)}, and then {@link #advanceTo(int)} for each matching
+ * document.
  *
  * @param <T> the type of the group value
  */
 public abstract class GroupSelector<T> {
 
-  /**
-   * What to do with the current value
-   */
-  public enum State { SKIP, ACCEPT }
+  /** What to do with the current value */
+  public enum State {
+    SKIP,
+    ACCEPT
+  }
 
-  /**
-   * Set the LeafReaderContext
-   */
+  /** Set the LeafReaderContext */
   public abstract void setNextReader(LeafReaderContext readerContext) throws IOException;
 
-  /**
-   * Set the current Scorer
-   */
+  /** Set the current Scorer */
   public abstract void setScorer(Scorable scorer) throws IOException;
 
-  /**
-   * Advance the GroupSelector's iterator to the given document
-   */
+  /** Advance the GroupSelector's iterator to the given document */
   public abstract State advanceTo(int doc) throws IOException;
 
   /**
    * Get the group value of the current document
    *
-   * N.B. this object may be reused, for a persistent version use {@link #copyValue()}
+   * <p>N.B. this object may be reused, for a persistent version use {@link #copyValue()}
    */
   public abstract T currentValue() throws IOException;
 
-  /**
-   * @return a copy of the group value of the current document
-   */
+  /** @return a copy of the group value of the current document */
   public abstract T copyValue() throws IOException;
 
   /**
    * Set a restriction on the group values returned by this selector
    *
-   * If the selector is positioned on a document whose group value is not contained
-   * within this set, then {@link #advanceTo(int)} will return {@link State#SKIP}
+   * <p>If the selector is positioned on a document whose group value is not contained within this
+   * set, then {@link #advanceTo(int)} will return {@link State#SKIP}
    *
    * @param groups a set of {@link SearchGroup} objects to limit selections to
    */
   public abstract void setGroups(Collection<SearchGroup<T>> groups);
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java
index 25ed377..ce97e2a 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java
@@ -20,7 +20,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
-
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.search.CachingCollector;
 import org.apache.lucene.search.Collector;
@@ -62,8 +61,9 @@ public class GroupingSearch {
   private Bits matchingGroupHeads;
 
   /**
-   * Constructs a <code>GroupingSearch</code> instance that groups documents by index terms using DocValues.
-   * The group field can only have one token per document. This means that the field must not be analysed.
+   * Constructs a <code>GroupingSearch</code> instance that groups documents by index terms using
+   * DocValues. The group field can only have one token per document. This means that the field must
+   * not be analysed.
    *
    * @param groupField The name of the field to group by.
    */
@@ -72,7 +72,9 @@ public class GroupingSearch {
   }
 
   /**
-   * Constructs a <code>GroupingSearch</code> instance that groups documents using a {@link GroupSelector}
+   * Constructs a <code>GroupingSearch</code> instance that groups documents using a {@link
+   * GroupSelector}
+   *
    * @param groupSelector a {@link GroupSelector} that defines groups for this GroupingSearch
    */
   public GroupingSearch(GroupSelector<?> groupSelector) {
@@ -80,10 +82,10 @@ public class GroupingSearch {
   }
 
   /**
-   * Constructs a <code>GroupingSearch</code> instance that groups documents by function using a {@link ValueSource}
-   * instance.
+   * Constructs a <code>GroupingSearch</code> instance that groups documents by function using a
+   * {@link ValueSource} instance.
    *
-   * @param groupFunction      The function to group by specified as {@link ValueSource}
+   * @param groupFunction The function to group by specified as {@link ValueSource}
    * @param valueSourceContext The context of the specified groupFunction
    */
   public GroupingSearch(ValueSource groupFunction, Map<Object, Object> valueSourceContext) {
@@ -91,8 +93,8 @@ public class GroupingSearch {
   }
 
   /**
-   * Constructor for grouping documents by doc block.
-   * This constructor can only be used when documents belonging in a group are indexed in one block.
+   * Constructor for grouping documents by doc block. This constructor can only be used when
+   * documents belonging in a group are indexed in one block.
    *
    * @param groupEndDocs The query that marks the last document in all doc blocks
    */
@@ -106,36 +108,44 @@ public class GroupingSearch {
   }
 
   /**
-   * Executes a grouped search. Both the first pass and second pass are executed on the specified searcher.
+   * Executes a grouped search. Both the first pass and second pass are executed on the specified
+   * searcher.
    *
-   * @param searcher    The {@link org.apache.lucene.search.IndexSearcher} instance to execute the grouped search on.
-   * @param query       The query to execute with the grouping
+   * @param searcher The {@link org.apache.lucene.search.IndexSearcher} instance to execute the
+   *     grouped search on.
+   * @param query The query to execute with the grouping
    * @param groupOffset The group offset
-   * @param groupLimit  The number of groups to return from the specified group offset
+   * @param groupLimit The number of groups to return from the specified group offset
    * @return the grouped result as a {@link TopGroups} instance
    * @throws IOException If any I/O related errors occur
    */
   @SuppressWarnings("unchecked")
-  public <T> TopGroups<T> search(IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
+  public <T> TopGroups<T> search(
+      IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
     if (grouper != null) {
       return groupByFieldOrFunction(searcher, query, groupOffset, groupLimit);
     } else if (groupEndDocs != null) {
       return (TopGroups<T>) groupByDocBlock(searcher, query, groupOffset, groupLimit);
     } else {
-      throw new IllegalStateException("Either groupField, groupFunction or groupEndDocs must be set."); // This can't happen...
+      throw new IllegalStateException(
+          "Either groupField, groupFunction or groupEndDocs must be set."); // This can't happen...
     }
   }
 
   @SuppressWarnings({"unchecked", "rawtypes"})
-  protected TopGroups groupByFieldOrFunction(IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
+  protected TopGroups groupByFieldOrFunction(
+      IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
     int topN = groupOffset + groupLimit;
 
-    final FirstPassGroupingCollector firstPassCollector = new FirstPassGroupingCollector(grouper, groupSort, topN);
-    final AllGroupsCollector allGroupsCollector = allGroups ? new AllGroupsCollector(grouper) : null;
-    final AllGroupHeadsCollector allGroupHeadsCollector
-        = allGroupHeads ? AllGroupHeadsCollector.newCollector(grouper, sortWithinGroup) : null;
+    final FirstPassGroupingCollector firstPassCollector =
+        new FirstPassGroupingCollector(grouper, groupSort, topN);
+    final AllGroupsCollector allGroupsCollector =
+        allGroups ? new AllGroupsCollector(grouper) : null;
+    final AllGroupHeadsCollector allGroupHeadsCollector =
+        allGroupHeads ? AllGroupHeadsCollector.newCollector(grouper, sortWithinGroup) : null;
 
-    final Collector firstRound = MultiCollector.wrap(firstPassCollector, allGroupsCollector, allGroupHeadsCollector);
+    final Collector firstRound =
+        MultiCollector.wrap(firstPassCollector, allGroupsCollector, allGroupHeadsCollector);
 
     CachingCollector cachedCollector = null;
     if (maxCacheRAMMB != null || maxDocsToCache != null) {
@@ -150,8 +160,10 @@ public class GroupingSearch {
     }
 
     matchingGroups = allGroups ? allGroupsCollector.getGroups() : Collections.emptyList();
-    matchingGroupHeads = allGroupHeads ? allGroupHeadsCollector.retrieveGroupHeads(searcher.getIndexReader().maxDoc())
-        : new Bits.MatchNoBits(searcher.getIndexReader().maxDoc());
+    matchingGroupHeads =
+        allGroupHeads
+            ? allGroupHeadsCollector.retrieveGroupHeads(searcher.getIndexReader().maxDoc())
+            : new Bits.MatchNoBits(searcher.getIndexReader().maxDoc());
 
     Collection<SearchGroup> topSearchGroups = firstPassCollector.getTopGroups(groupOffset);
     if (topSearchGroups == null) {
@@ -159,8 +171,9 @@ public class GroupingSearch {
     }
 
     int topNInsideGroup = groupDocsOffset + groupDocsLimit;
-    TopGroupsCollector secondPassCollector
-        = new TopGroupsCollector(grouper, topSearchGroups, groupSort, sortWithinGroup, topNInsideGroup, includeMaxScore);
+    TopGroupsCollector secondPassCollector =
+        new TopGroupsCollector(
+            grouper, topSearchGroups, groupSort, sortWithinGroup, topNInsideGroup, includeMaxScore);
 
     if (cachedCollector != null && cachedCollector.isCached()) {
       cachedCollector.replay(secondPassCollector);
@@ -169,29 +182,38 @@ public class GroupingSearch {
     }
 
     if (allGroups) {
-      return new TopGroups(secondPassCollector.getTopGroups(groupDocsOffset), matchingGroups.size());
+      return new TopGroups(
+          secondPassCollector.getTopGroups(groupDocsOffset), matchingGroups.size());
     } else {
       return secondPassCollector.getTopGroups(groupDocsOffset);
     }
   }
 
-  protected TopGroups<?> groupByDocBlock(IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
+  protected TopGroups<?> groupByDocBlock(
+      IndexSearcher searcher, Query query, int groupOffset, int groupLimit) throws IOException {
     int topN = groupOffset + groupLimit;
     final Query endDocsQuery = searcher.rewrite(this.groupEndDocs);
-    final Weight groupEndDocs = searcher.createWeight(endDocsQuery, ScoreMode.COMPLETE_NO_SCORES, 1);
-    BlockGroupingCollector c = new BlockGroupingCollector(groupSort, topN, groupSort.needsScores() || sortWithinGroup.needsScores(), groupEndDocs);
+    final Weight groupEndDocs =
+        searcher.createWeight(endDocsQuery, ScoreMode.COMPLETE_NO_SCORES, 1);
+    BlockGroupingCollector c =
+        new BlockGroupingCollector(
+            groupSort,
+            topN,
+            groupSort.needsScores() || sortWithinGroup.needsScores(),
+            groupEndDocs);
     searcher.search(query, c);
     int topNInsideGroup = groupDocsOffset + groupDocsLimit;
     return c.getTopGroups(sortWithinGroup, groupOffset, groupDocsOffset, topNInsideGroup);
   }
 
   /**
-   * Enables caching for the second pass search. The cache will not grow over a specified limit in MB.
-   * The cache is filled during the first pass searched and then replayed during the second pass searched.
-   * If the cache grows beyond the specified limit, then the cache is purged and not used in the second pass search.
+   * Enables caching for the second pass search. The cache will not grow over a specified limit in
+   * MB. The cache is filled during the first pass searched and then replayed during the second pass
+   * searched. If the cache grows beyond the specified limit, then the cache is purged and not used
+   * in the second pass search.
    *
    * @param maxCacheRAMMB The maximum amount in MB the cache is allowed to hold
-   * @param cacheScores   Whether to cache the scores
+   * @param cacheScores Whether to cache the scores
    * @return <code>this</code>
    */
   public GroupingSearch setCachingInMB(double maxCacheRAMMB, boolean cacheScores) {
@@ -202,12 +224,13 @@ public class GroupingSearch {
   }
 
   /**
-   * Enables caching for the second pass search. The cache will not contain more than the maximum specified documents.
-   * The cache is filled during the first pass searched and then replayed during the second pass searched.
-   * If the cache grows beyond the specified limit, then the cache is purged and not used in the second pass search.
+   * Enables caching for the second pass search. The cache will not contain more than the maximum
+   * specified documents. The cache is filled during the first pass searched and then replayed
+   * during the second pass searched. If the cache grows beyond the specified limit, then the cache
+   * is purged and not used in the second pass search.
    *
    * @param maxDocsToCache The maximum number of documents the cache is allowed to hold
-   * @param cacheScores    Whether to cache the scores
+   * @param cacheScores Whether to cache the scores
    * @return <code>this</code>
    */
   public GroupingSearch setCaching(int maxDocsToCache, boolean cacheScores) {
@@ -229,8 +252,7 @@ public class GroupingSearch {
   }
 
   /**
-   * Specifies how groups are sorted.
-   * Defaults to {@link Sort#RELEVANCE}.
+   * Specifies how groups are sorted. Defaults to {@link Sort#RELEVANCE}.
    *
    * @param groupSort The sort for the groups.
    * @return <code>this</code>
@@ -241,8 +263,7 @@ public class GroupingSearch {
   }
 
   /**
-   * Specified how documents inside a group are sorted.
-   * Defaults to {@link Sort#RELEVANCE}.
+   * Specified how documents inside a group are sorted. Defaults to {@link Sort#RELEVANCE}.
    *
    * @param sortWithinGroup The sort for documents inside a group
    * @return <code>this</code>
@@ -286,11 +307,11 @@ public class GroupingSearch {
   }
 
   /**
-   * Whether to also compute all groups matching the query.
-   * This can be used to determine the number of groups, which can be used for accurate pagination.
-   * <p>
-   * When grouping by doc block the number of groups are automatically included in the {@link TopGroups} and this
-   * option doesn't have any influence.
+   * Whether to also compute all groups matching the query. This can be used to determine the number
+   * of groups, which can be used for accurate pagination.
+   *
+   * <p>When grouping by doc block the number of groups are automatically included in the {@link
+   * TopGroups} and this option doesn't have any influence.
    *
    * @param allGroups to also compute all groups matching the query
    * @return <code>this</code>
@@ -301,11 +322,11 @@ public class GroupingSearch {
   }
 
   /**
-   * If {@link #setAllGroups(boolean)} was set to <code>true</code> then all matching groups are returned, otherwise
-   * an empty collection is returned.
+   * If {@link #setAllGroups(boolean)} was set to <code>true</code> then all matching groups are
+   * returned, otherwise an empty collection is returned.
    *
-   * @param <T> The group value type. This can be a {@link BytesRef} or a {@link MutableValue} instance. If grouping
-   *            by doc block this the group value is always <code>null</code>.
+   * @param <T> The group value type. This can be a {@link BytesRef} or a {@link MutableValue}
+   *     instance. If grouping by doc block this the group value is always <code>null</code>.
    * @return all matching groups are returned, or an empty collection
    */
   @SuppressWarnings({"unchecked", "rawtypes"})
@@ -315,10 +336,11 @@ public class GroupingSearch {
 
   /**
    * Whether to compute all group heads (most relevant document per group) matching the query.
-   * <p>
-   * This feature isn't enabled when grouping by doc block.
    *
-   * @param allGroupHeads Whether to compute all group heads (most relevant document per group) matching the query
+   * <p>This feature isn't enabled when grouping by doc block.
+   *
+   * @param allGroupHeads Whether to compute all group heads (most relevant document per group)
+   *     matching the query
    * @return <code>this</code>
    */
   public GroupingSearch setAllGroupHeads(boolean allGroupHeads) {
@@ -327,12 +349,13 @@ public class GroupingSearch {
   }
 
   /**
-   * Returns the matching group heads if {@link #setAllGroupHeads(boolean)} was set to true or an empty bit set.
+   * Returns the matching group heads if {@link #setAllGroupHeads(boolean)} was set to true or an
+   * empty bit set.
    *
-   * @return The matching group heads if {@link #setAllGroupHeads(boolean)} was set to true or an empty bit set
+   * @return The matching group heads if {@link #setAllGroupHeads(boolean)} was set to true or an
+   *     empty bit set
    */
   public Bits getAllGroupHeads() {
     return matchingGroupHeads;
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRange.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRange.java
index 7b6c845..9b631d1 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRange.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRange.java
@@ -19,10 +19,7 @@ package org.apache.lucene.search.grouping;
 
 import java.util.Objects;
 
-/**
- * Represents a contiguous range of long values, with an inclusive minimum and
- * exclusive maximum
- */
+/** Represents a contiguous range of long values, with an inclusive minimum and exclusive maximum */
 public class LongRange {
 
   /** The inclusive minimum value of this range */
@@ -30,9 +27,7 @@ public class LongRange {
   /** The exclusive maximum value of this range */
   public long max;
 
-  /**
-   * Creates a new double range, running from {@code min} inclusive to {@code max} exclusive
-   */
+  /** Creates a new double range, running from {@code min} inclusive to {@code max} exclusive */
   public LongRange(long min, long max) {
     this.min = min;
     this.max = max;
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeFactory.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeFactory.java
index be66647..c2795d8 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeFactory.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeFactory.java
@@ -17,9 +17,7 @@
 
 package org.apache.lucene.search.grouping;
 
-/**
- * Groups double values into ranges
- */
+/** Groups double values into ranges */
 public class LongRangeFactory {
 
   private final long min;
@@ -28,11 +26,12 @@ public class LongRangeFactory {
 
   /**
    * Creates a new LongRangeFactory
-   * @param min     a minimum value; all longs below this value are grouped into a single range
-   * @param width   a standard width; all ranges between {@code min} and {@code max} are this wide,
-   *                with the exception of the final range which may be up to this width.  Ranges
-   *                are inclusive at the lower end, and exclusive at the upper end.
-   * @param max     a maximum value; all longs above this value are grouped into a single range
+   *
+   * @param min a minimum value; all longs below this value are grouped into a single range
+   * @param width a standard width; all ranges between {@code min} and {@code max} are this wide,
+   *     with the exception of the final range which may be up to this width. Ranges are inclusive
+   *     at the lower end, and exclusive at the upper end.
+   * @param max a maximum value; all longs above this value are grouped into a single range
    */
   public LongRangeFactory(long min, long width, long max) {
     this.min = min;
@@ -42,12 +41,14 @@ public class LongRangeFactory {
 
   /**
    * Finds the LongRange that a value should be grouped into
+   *
    * @param value the value to group
    * @param reuse an existing LongRange object to reuse
    */
   public LongRange getRange(long value, LongRange reuse) {
-    if (reuse == null)
+    if (reuse == null) {
       reuse = new LongRange(Long.MIN_VALUE, Long.MAX_VALUE);
+    }
     if (value < min) {
       reuse.max = min;
       reuse.min = Long.MIN_VALUE;
@@ -63,5 +64,4 @@ public class LongRangeFactory {
     reuse.max = reuse.min + width;
     return reuse;
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeGroupSelector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeGroupSelector.java
index 7dd0c23..ba8623d 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeGroupSelector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/LongRangeGroupSelector.java
@@ -21,16 +21,13 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.DoubleValuesSource;
 import org.apache.lucene.search.LongValues;
 import org.apache.lucene.search.LongValuesSource;
 import org.apache.lucene.search.Scorable;
 
-/**
- * A GroupSelector implementation that groups documents by long values
- */
+/** A GroupSelector implementation that groups documents by long values */
 public class LongRangeGroupSelector extends GroupSelector<LongRange> {
 
   private final LongValuesSource source;
@@ -46,8 +43,10 @@ public class LongRangeGroupSelector extends GroupSelector<LongRange> {
 
   /**
    * Creates a new LongRangeGroupSelector
-   * @param source        a LongValuesSource to retrieve long values per document
-   * @param rangeFactory  a LongRangeFactory that defines how to group the long values into range buckets
+   *
+   * @param source a LongValuesSource to retrieve long values per document
+   * @param rangeFactory a LongRangeFactory that defines how to group the long values into range
+   *     buckets
    */
   public LongRangeGroupSelector(LongValuesSource source, LongRangeFactory rangeFactory) {
     this.source = source;
@@ -92,10 +91,11 @@ public class LongRangeGroupSelector extends GroupSelector<LongRange> {
     inSecondPass = new HashSet<>();
     includeEmpty = false;
     for (SearchGroup<LongRange> group : searchGroups) {
-      if (group.groupValue == null)
+      if (group.groupValue == null) {
         includeEmpty = true;
-      else
+      } else {
         inSecondPass.add(group.groupValue);
+      }
     }
   }
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/SearchGroup.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/SearchGroup.java
index 58e1f74..f859e47 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/SearchGroup.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/SearchGroup.java
@@ -26,7 +26,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.NavigableSet;
 import java.util.TreeSet;
-
 import org.apache.lucene.search.FieldComparator;
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
@@ -38,19 +37,23 @@ import org.apache.lucene.search.SortField;
  */
 public class SearchGroup<T> {
 
-  /** The value that defines this group  */
+  /** The value that defines this group */
   public T groupValue;
 
-  /** The sort values used during sorting. These are the
-   *  groupSort field values of the highest rank document
-   *  (by the groupSort) within the group.  Can be
-   * <code>null</code> if <code>fillFields=false</code> had
-   * been passed to {@link FirstPassGroupingCollector#getTopGroups} */
+  /**
+   * The sort values used during sorting. These are the groupSort field values of the highest rank
+   * document (by the groupSort) within the group. Can be <code>null</code> if <code>
+   * fillFields=false</code> had been passed to {@link FirstPassGroupingCollector#getTopGroups}
+   */
   public Object[] sortValues;
 
   @Override
   public String toString() {
-    return("SearchGroup(groupValue=" + groupValue + " sortValues=" + Arrays.toString(sortValues) + ")");
+    return ("SearchGroup(groupValue="
+        + groupValue
+        + " sortValues="
+        + Arrays.toString(sortValues)
+        + ")");
   }
 
   @Override
@@ -90,11 +93,12 @@ public class SearchGroup<T> {
       assert iter.hasNext();
       final SearchGroup<T> group = iter.next();
       if (group.sortValues == null) {
-        throw new IllegalArgumentException("group.sortValues is null; you must pass fillFields=true to the first pass collector");
+        throw new IllegalArgumentException(
+            "group.sortValues is null; you must pass fillFields=true to the first pass collector");
       }
       return group;
     }
-    
+
     @Override
     public String toString() {
       return "ShardIter(shard=" + shardIndex + ")";
@@ -162,7 +166,7 @@ public class SearchGroup<T> {
 
     @SuppressWarnings("rawtypes")
     public final FieldComparator[] comparators;
-    
+
     public final int[] reversed;
 
     @SuppressWarnings({"unchecked", "rawtypes"})
@@ -178,18 +182,19 @@ public class SearchGroup<T> {
     }
 
     @Override
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public int compare(MergedGroup<T> group, MergedGroup<T> other) {
       if (group == other) {
         return 0;
       }
-      //System.out.println("compare group=" + group + " other=" + other);
+      // System.out.println("compare group=" + group + " other=" + other);
       final Object[] groupValues = group.topValues;
       final Object[] otherValues = other.topValues;
-      //System.out.println("  groupValues=" + groupValues + " otherValues=" + otherValues);
-      for (int compIDX = 0;compIDX < comparators.length; compIDX++) {
-        final int c = reversed[compIDX] * comparators[compIDX].compareValues(groupValues[compIDX],
-                                                                             otherValues[compIDX]);
+      // System.out.println("  groupValues=" + groupValues + " otherValues=" + otherValues);
+      for (int compIDX = 0; compIDX < comparators.length; compIDX++) {
+        final int c =
+            reversed[compIDX]
+                * comparators[compIDX].compareValues(groupValues[compIDX], otherValues[compIDX]);
         if (c != 0) {
           return c;
         }
@@ -205,7 +210,7 @@ public class SearchGroup<T> {
 
     private final GroupComparator<T> groupComp;
     private final NavigableSet<MergedGroup<T>> queue;
-    private final Map<T,MergedGroup<T>> groupsSeen;
+    private final Map<T, MergedGroup<T>> groupsSeen;
 
     public GroupMerger(Sort groupSort) {
       groupComp = new GroupComparator<>(groupSort);
@@ -213,17 +218,18 @@ public class SearchGroup<T> {
       groupsSeen = new HashMap<>();
     }
 
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     private void updateNextGroup(int topN, ShardIter<T> shard) {
-      while(shard.iter.hasNext()) {
+      while (shard.iter.hasNext()) {
         final SearchGroup<T> group = shard.next();
         MergedGroup<T> mergedGroup = groupsSeen.get(group.groupValue);
         final boolean isNew = mergedGroup == null;
-        //System.out.println("    next group=" + (group.groupValue == null ? "null" : ((BytesRef) group.groupValue).utf8ToString()) + " sort=" + Arrays.toString(group.sortValues));
+        // System.out.println("    next group=" + (group.groupValue == null ? "null" : ((BytesRef)
+        // group.groupValue).utf8ToString()) + " sort=" + Arrays.toString(group.sortValues));
 
         if (isNew) {
           // Start a new group:
-          //System.out.println("      new");
+          // System.out.println("      new");
           mergedGroup = new MergedGroup<>(group.groupValue);
           mergedGroup.minShardIndex = shard.shardIndex;
           assert group.sortValues != null;
@@ -236,11 +242,13 @@ public class SearchGroup<T> {
           // processed; move on to next group...
           continue;
         } else {
-          //System.out.println("      old");
+          // System.out.println("      old");
           boolean competes = false;
-          for(int compIDX=0;compIDX<groupComp.comparators.length;compIDX++) {
-            final int cmp = groupComp.reversed[compIDX] * groupComp.comparators[compIDX].compareValues(group.sortValues[compIDX],
-                                                                                                       mergedGroup.topValues[compIDX]);
+          for (int compIDX = 0; compIDX < groupComp.comparators.length; compIDX++) {
+            final int cmp =
+                groupComp.reversed[compIDX]
+                    * groupComp.comparators[compIDX].compareValues(
+                        group.sortValues[compIDX], mergedGroup.topValues[compIDX]);
             if (cmp < 0) {
               // Definitely competes
               competes = true;
@@ -248,14 +256,14 @@ public class SearchGroup<T> {
             } else if (cmp > 0) {
               // Definitely does not compete
               break;
-            } else if (compIDX == groupComp.comparators.length-1) {
+            } else if (compIDX == groupComp.comparators.length - 1) {
               if (shard.shardIndex < mergedGroup.minShardIndex) {
                 competes = true;
               }
             }
           }
 
-          //System.out.println("      competes=" + competes);
+          // System.out.println("      competes=" + competes);
 
           if (competes) {
             // Group's sort changed -- remove & re-insert
@@ -274,23 +282,24 @@ public class SearchGroup<T> {
       }
 
       // Prune un-competitive groups:
-      while(queue.size() > topN) {
+      while (queue.size() > topN) {
         final MergedGroup<T> group = queue.pollLast();
-        //System.out.println("PRUNE: " + group);
+        // System.out.println("PRUNE: " + group);
         group.inQueue = false;
       }
     }
 
-    public Collection<SearchGroup<T>> merge(List<Collection<SearchGroup<T>>> shards, int offset, int topN) {
+    public Collection<SearchGroup<T>> merge(
+        List<Collection<SearchGroup<T>>> shards, int offset, int topN) {
 
       final int maxQueueSize = offset + topN;
 
-      //System.out.println("merge");
+      // System.out.println("merge");
       // Init queue:
-      for(int shardIDX=0;shardIDX<shards.size();shardIDX++) {
+      for (int shardIDX = 0; shardIDX < shards.size(); shardIDX++) {
         final Collection<SearchGroup<T>> shard = shards.get(shardIDX);
         if (!shard.isEmpty()) {
-          //System.out.println("  insert shard=" + shardIDX);
+          // System.out.println("  insert shard=" + shardIDX);
           updateNextGroup(maxQueueSize, new ShardIter<>(shard, shardIDX));
         }
       }
@@ -300,10 +309,12 @@ public class SearchGroup<T> {
 
       int count = 0;
 
-      while(!queue.isEmpty()) {
+      while (!queue.isEmpty()) {
         final MergedGroup<T> group = queue.pollFirst();
         group.processed = true;
-        //System.out.println("  pop: shards=" + group.shards + " group=" + (group.groupValue == null ? "null" : (((BytesRef) group.groupValue).utf8ToString())) + " sortValues=" + Arrays.toString(group.topValues));
+        // System.out.println("  pop: shards=" + group.shards + " group=" + (group.groupValue ==
+        // null ? "null" : (((BytesRef) group.groupValue).utf8ToString())) + " sortValues=" +
+        // Arrays.toString(group.topValues));
         if (count++ >= offset) {
           final SearchGroup<T> newGroup = new SearchGroup<>();
           newGroup.groupValue = group.groupValue;
@@ -312,12 +323,12 @@ public class SearchGroup<T> {
           if (newTopGroups.size() == topN) {
             break;
           }
-        //} else {
-        // System.out.println("    skip < offset");
+          // } else {
+          // System.out.println("    skip < offset");
         }
 
         // Advance all iters in this group:
-        for(ShardIter<T> shardIter : group.shards) {
+        for (ShardIter<T> shardIter : group.shards) {
           updateNextGroup(maxQueueSize, shardIter);
         }
       }
@@ -330,16 +341,16 @@ public class SearchGroup<T> {
     }
   }
 
-  /** Merges multiple collections of top groups, for example
-   *  obtained from separate index shards.  The provided
-   *  groupSort must match how the groups were sorted, and
-   *  the provided SearchGroups must have been computed
-   *  with fillFields=true passed to {@link
-   *  FirstPassGroupingCollector#getTopGroups}.
+  /**
+   * Merges multiple collections of top groups, for example obtained from separate index shards. The
+   * provided groupSort must match how the groups were sorted, and the provided SearchGroups must
+   * have been computed with fillFields=true passed to {@link
+   * FirstPassGroupingCollector#getTopGroups}.
    *
    * <p>NOTE: this returns null if the topGroups is empty.
    */
-  public static <T> Collection<SearchGroup<T>> merge(List<Collection<SearchGroup<T>>> topGroups, int offset, int topN, Sort groupSort) {
+  public static <T> Collection<SearchGroup<T>> merge(
+      List<Collection<SearchGroup<T>>> topGroups, int offset, int topN, Sort groupSort) {
     if (topGroups.isEmpty()) {
       return null;
     } else {
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/SecondPassGroupingCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/SecondPassGroupingCollector.java
index dc7d0aa..77cd049 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/SecondPassGroupingCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/SecondPassGroupingCollector.java
@@ -19,19 +19,17 @@ package org.apache.lucene.search.grouping;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Objects;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.Scorable;
 import org.apache.lucene.search.ScoreMode;
 import org.apache.lucene.search.SimpleCollector;
 
 /**
- * SecondPassGroupingCollector runs over an already collected set of
- * groups, further applying a {@link GroupReducer} to each group
+ * SecondPassGroupingCollector runs over an already collected set of groups, further applying a
+ * {@link GroupReducer} to each group
  *
  * @see TopGroupsCollector
  * @see DistinctValuesCollector
- *
  * @lucene.experimental
  */
 public class SecondPassGroupingCollector<T> extends SimpleCollector {
@@ -45,13 +43,17 @@ public class SecondPassGroupingCollector<T> extends SimpleCollector {
 
   /**
    * Create a new SecondPassGroupingCollector
-   * @param groupSelector   the GroupSelector that defines groups for this search
-   * @param groups          the groups to collect documents for
-   * @param reducer         the reducer to apply to each group
+   *
+   * @param groupSelector the GroupSelector that defines groups for this search
+   * @param groups the groups to collect documents for
+   * @param reducer the reducer to apply to each group
    */
-  public SecondPassGroupingCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, GroupReducer<T, ?> reducer) {
+  public SecondPassGroupingCollector(
+      GroupSelector<T> groupSelector,
+      Collection<SearchGroup<T>> groups,
+      GroupReducer<T, ?> reducer) {
 
-    //System.out.println("SP init");
+    // System.out.println("SP init");
     if (groups.isEmpty()) {
       throw new IllegalArgumentException("no groups to collect (groups is empty)");
     }
@@ -64,9 +66,7 @@ public class SecondPassGroupingCollector<T> extends SimpleCollector {
     reducer.setGroups(groups);
   }
 
-  /**
-   * @return the GroupSelector used in this collector
-   */
+  /** @return the GroupSelector used in this collector */
   public GroupSelector<T> getGroupSelector() {
     return groupSelector;
   }
@@ -85,8 +85,9 @@ public class SecondPassGroupingCollector<T> extends SimpleCollector {
   @Override
   public void collect(int doc) throws IOException {
     totalHitCount++;
-    if (groupSelector.advanceTo(doc) == GroupSelector.State.SKIP)
+    if (groupSelector.advanceTo(doc) == GroupSelector.State.SKIP) {
       return;
+    }
     totalGroupedHitCount++;
     T value = groupSelector.currentValue();
     groupReducer.collect(value, doc);
@@ -97,5 +98,4 @@ public class SecondPassGroupingCollector<T> extends SimpleCollector {
     groupReducer.setNextReader(readerContext);
     groupSelector.setNextReader(readerContext);
   }
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupFacetCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupFacetCollector.java
index 39d28a5..96c948d 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupFacetCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupFacetCollector.java
@@ -19,7 +19,6 @@ package org.apache.lucene.search.grouping;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.SortedDocValues;
@@ -31,8 +30,8 @@ import org.apache.lucene.util.SentinelIntSet;
 import org.apache.lucene.util.UnicodeUtil;
 
 /**
- * An implementation of {@link GroupFacetCollector} that computes grouped facets based on the indexed terms
- * from DocValues.
+ * An implementation of {@link GroupFacetCollector} that computes grouped facets based on the
+ * indexed terms from DocValues.
  *
  * @lucene.experimental
  */
@@ -44,23 +43,24 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
   SortedDocValues groupFieldTermsIndex;
 
   /**
-   * Factory method for creating the right implementation based on the fact whether the facet field contains
-   * multiple tokens per documents.
+   * Factory method for creating the right implementation based on the fact whether the facet field
+   * contains multiple tokens per documents.
    *
    * @param groupField The group field
    * @param facetField The facet field
    * @param facetFieldMultivalued Whether the facet field has multiple tokens per document
    * @param facetPrefix The facet prefix a facet entry should start with to be included.
-   * @param initialSize The initial allocation size of the internal int set and group facet list which should roughly
-   *                    match the total number of expected unique groups. Be aware that the heap usage is
-   *                    4 bytes * initialSize.
+   * @param initialSize The initial allocation size of the internal int set and group facet list
+   *     which should roughly match the total number of expected unique groups. Be aware that the
+   *     heap usage is 4 bytes * initialSize.
    * @return <code>TermGroupFacetCollector</code> implementation
    */
-  public static TermGroupFacetCollector createTermGroupFacetCollector(String groupField,
-                                                                      String facetField,
-                                                                      boolean facetFieldMultivalued,
-                                                                      BytesRef facetPrefix,
-                                                                      int initialSize) {
+  public static TermGroupFacetCollector createTermGroupFacetCollector(
+      String groupField,
+      String facetField,
+      boolean facetFieldMultivalued,
+      BytesRef facetPrefix,
+      int initialSize) {
     if (facetFieldMultivalued) {
       return new MV(groupField, facetField, facetPrefix, initialSize);
     } else {
@@ -68,7 +68,8 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
     }
   }
 
-  TermGroupFacetCollector(String groupField, String facetField, BytesRef facetPrefix, int initialSize) {
+  TermGroupFacetCollector(
+      String groupField, String facetField, BytesRef facetPrefix, int initialSize) {
     super(groupField, facetField, facetPrefix);
     groupedFacetHits = new ArrayList<>(initialSize);
     segmentGroupedFacetHits = new SentinelIntSet(initialSize, Integer.MIN_VALUE);
@@ -95,7 +96,7 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
       } else {
         facetOrd = -1;
       }
-      
+
       if (facetOrd < startFacetOrd || facetOrd >= endFacetOrd) {
         return;
       }
@@ -110,13 +111,14 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
       } else {
         groupOrd = -1;
       }
-      int segmentGroupedFacetsIndex = groupOrd * (facetFieldTermsIndex.getValueCount()+1) + facetOrd;
+      int segmentGroupedFacetsIndex =
+          groupOrd * (facetFieldTermsIndex.getValueCount() + 1) + facetOrd;
       if (segmentGroupedFacetHits.exists(segmentGroupedFacetsIndex)) {
         return;
       }
 
       segmentTotalCount++;
-      segmentFacetCounts[facetOrd+1]++;
+      segmentFacetCounts[facetOrd + 1]++;
 
       segmentGroupedFacetHits.put(segmentGroupedFacetsIndex);
 
@@ -147,22 +149,29 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
       facetFieldTermsIndex = DocValues.getSorted(context.reader(), facetField);
 
       // 1+ to allow for the -1 "not set":
-      segmentFacetCounts = new int[facetFieldTermsIndex.getValueCount()+1];
+      segmentFacetCounts = new int[facetFieldTermsIndex.getValueCount() + 1];
       segmentTotalCount = 0;
 
       segmentGroupedFacetHits.clear();
       for (GroupedFacetHit groupedFacetHit : groupedFacetHits) {
-        int facetOrd = groupedFacetHit.facetValue == null ? -1 : facetFieldTermsIndex.lookupTerm(groupedFacetHit.facetValue);
+        int facetOrd =
+            groupedFacetHit.facetValue == null
+                ? -1
+                : facetFieldTermsIndex.lookupTerm(groupedFacetHit.facetValue);
         if (groupedFacetHit.facetValue != null && facetOrd < 0) {
           continue;
         }
 
-        int groupOrd = groupedFacetHit.groupValue == null ? -1 : groupFieldTermsIndex.lookupTerm(groupedFacetHit.groupValue);
+        int groupOrd =
+            groupedFacetHit.groupValue == null
+                ? -1
+                : groupFieldTermsIndex.lookupTerm(groupedFacetHit.groupValue);
         if (groupedFacetHit.groupValue != null && groupOrd < 0) {
           continue;
         }
 
-        int segmentGroupedFacetsIndex = groupOrd * (facetFieldTermsIndex.getValueCount()+1) + facetOrd;
+        int segmentGroupedFacetsIndex =
+            groupOrd * (facetFieldTermsIndex.getValueCount() + 1) + facetOrd;
         segmentGroupedFacetHits.put(segmentGroupedFacetsIndex);
       }
 
@@ -186,17 +195,23 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
 
     @Override
     protected SegmentResult createSegmentResult() throws IOException {
-      return new SegmentResult(segmentFacetCounts, segmentTotalCount, facetFieldTermsIndex.termsEnum(), startFacetOrd, endFacetOrd);
+      return new SegmentResult(
+          segmentFacetCounts,
+          segmentTotalCount,
+          facetFieldTermsIndex.termsEnum(),
+          startFacetOrd,
+          endFacetOrd);
     }
 
     private static class SegmentResult extends GroupFacetCollector.SegmentResult {
 
       final TermsEnum tenum;
 
-      SegmentResult(int[] counts, int total, TermsEnum tenum, int startFacetOrd, int endFacetOrd) throws IOException {
-        super(counts, total - counts[0], counts[0], endFacetOrd+1);
+      SegmentResult(int[] counts, int total, TermsEnum tenum, int startFacetOrd, int endFacetOrd)
+          throws IOException {
+        super(counts, total - counts[0], counts[0], endFacetOrd + 1);
         this.tenum = tenum;
-        this.mergePos = startFacetOrd == -1 ? 1 : startFacetOrd+1;
+        this.mergePos = startFacetOrd == -1 ? 1 : startFacetOrd + 1;
         if (mergePos < maxTermPos) {
           assert tenum != null;
           tenum.seekExact(startFacetOrd == -1 ? 0 : startFacetOrd);
@@ -234,7 +249,7 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
       } else {
         groupOrd = -1;
       }
-      
+
       if (facetFieldNumTerms == 0) {
         int segmentGroupedFacetsIndex = groupOrd * (facetFieldNumTerms + 1);
         if (facetPrefix != null || segmentGroupedFacetHits.exists(segmentGroupedFacetsIndex)) {
@@ -266,12 +281,14 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
           empty = false;
         }
       }
-      
+
       if (empty) {
-        process(groupOrd, facetFieldNumTerms); // this facet ord is reserved for docs not containing facet field.
+        process(
+            groupOrd,
+            facetFieldNumTerms); // this facet ord is reserved for docs not containing facet field.
       }
     }
-    
+
     private void process(int groupOrd, int facetOrd) throws IOException {
       if (facetOrd < startFacetOrd || facetOrd >= endFacetOrd) {
         return;
@@ -317,20 +334,25 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
       } else {
         facetOrdTermsEnum = facetFieldDocTermOrds.termsEnum();
       }
-      // [facetFieldNumTerms() + 1] for all possible facet values and docs not containing facet field
+      // [facetFieldNumTerms() + 1] for all possible facet values and docs not containing facet
+      // field
       segmentFacetCounts = new int[facetFieldNumTerms + 1];
       segmentTotalCount = 0;
 
       segmentGroupedFacetHits.clear();
       for (GroupedFacetHit groupedFacetHit : groupedFacetHits) {
-        int groupOrd = groupedFacetHit.groupValue == null ? -1 : groupFieldTermsIndex.lookupTerm(groupedFacetHit.groupValue);
+        int groupOrd =
+            groupedFacetHit.groupValue == null
+                ? -1
+                : groupFieldTermsIndex.lookupTerm(groupedFacetHit.groupValue);
         if (groupedFacetHit.groupValue != null && groupOrd < 0) {
           continue;
         }
 
         int facetOrd;
         if (groupedFacetHit.facetValue != null) {
-          if (facetOrdTermsEnum == null || !facetOrdTermsEnum.seekExact(groupedFacetHit.facetValue)) {
+          if (facetOrdTermsEnum == null
+              || !facetOrdTermsEnum.seekExact(groupedFacetHit.facetValue)) {
             continue;
           }
           facetOrd = (int) facetOrdTermsEnum.ord();
@@ -338,7 +360,8 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
           facetOrd = facetFieldNumTerms;
         }
 
-        // (facetFieldDocTermOrds.numTerms() + 1) for all possible facet values and docs not containing facet field
+        // (facetFieldDocTermOrds.numTerms() + 1) for all possible facet values and docs not
+        // containing facet field
         int segmentGroupedFacetsIndex = groupOrd * (facetFieldNumTerms + 1) + facetOrd;
         segmentGroupedFacetHits.put(segmentGroupedFacetsIndex);
       }
@@ -376,16 +399,32 @@ public abstract class TermGroupFacetCollector extends GroupFacetCollector {
 
     @Override
     protected SegmentResult createSegmentResult() throws IOException {
-      return new SegmentResult(segmentFacetCounts, segmentTotalCount, facetFieldNumTerms, facetOrdTermsEnum, startFacetOrd, endFacetOrd);
+      return new SegmentResult(
+          segmentFacetCounts,
+          segmentTotalCount,
+          facetFieldNumTerms,
+          facetOrdTermsEnum,
+          startFacetOrd,
+          endFacetOrd);
     }
 
     private static class SegmentResult extends GroupFacetCollector.SegmentResult {
 
       final TermsEnum tenum;
 
-      SegmentResult(int[] counts, int total, int missingCountIndex, TermsEnum tenum, int startFacetOrd, int endFacetOrd) throws IOException {
-        super(counts, total - counts[missingCountIndex], counts[missingCountIndex],
-            endFacetOrd == missingCountIndex + 1 ?  missingCountIndex : endFacetOrd);
+      SegmentResult(
+          int[] counts,
+          int total,
+          int missingCountIndex,
+          TermsEnum tenum,
+          int startFacetOrd,
+          int endFacetOrd)
+          throws IOException {
+        super(
+            counts,
+            total - counts[missingCountIndex],
+            counts[missingCountIndex],
+            endFacetOrd == missingCountIndex + 1 ? missingCountIndex : endFacetOrd);
         this.tenum = tenum;
         this.mergePos = startFacetOrd;
         if (tenum != null) {
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupSelector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupSelector.java
index 65213b2..802776e 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupSelector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TermGroupSelector.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.lucene.index.DocValues;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.index.SortedDocValues;
@@ -29,9 +28,7 @@ import org.apache.lucene.search.Scorable;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.BytesRefHash;
 
-/**
- * A GroupSelector implementation that groups via SortedDocValues
- */
+/** A GroupSelector implementation that groups via SortedDocValues */
 public class TermGroupSelector extends GroupSelector<BytesRef> {
 
   private final String field;
@@ -46,6 +43,7 @@ public class TermGroupSelector extends GroupSelector<BytesRef> {
 
   /**
    * Create a new TermGroupSelector
+   *
    * @param field the SortedDocValues field to use for grouping
    */
   public TermGroupSelector(String field) {
@@ -60,13 +58,14 @@ public class TermGroupSelector extends GroupSelector<BytesRef> {
     for (int i = 0; i < values.size(); i++) {
       values.get(i, scratch);
       int ord = this.docValues.lookupTerm(scratch);
-      if (ord >= 0)
+      if (ord >= 0) {
         ordsToGroupIds.put(ord, i);
+      }
     }
   }
 
   @Override
-  public void setScorer(Scorable scorer) throws IOException { }
+  public void setScorer(Scorable scorer) throws IOException {}
 
   @Override
   public State advanceTo(int doc) throws IOException {
@@ -79,8 +78,9 @@ public class TermGroupSelector extends GroupSelector<BytesRef> {
       groupId = ordsToGroupIds.get(ord);
       return State.ACCEPT;
     }
-    if (secondPass)
+    if (secondPass) {
       return State.SKIP;
+    }
     groupId = values.add(docValues.binaryValue());
     ordsToGroupIds.put(ord, groupId);
     return State.ACCEPT;
@@ -90,16 +90,18 @@ public class TermGroupSelector extends GroupSelector<BytesRef> {
 
   @Override
   public BytesRef currentValue() {
-    if (groupId == -1)
+    if (groupId == -1) {
       return null;
+    }
     values.get(groupId, scratch);
     return scratch;
   }
 
   @Override
   public BytesRef copyValue() {
-    if (groupId == -1)
+    if (groupId == -1) {
       return null;
+    }
     return BytesRef.deepCopyOf(currentValue());
   }
 
@@ -108,10 +110,11 @@ public class TermGroupSelector extends GroupSelector<BytesRef> {
     this.values.clear();
     this.values.reinit();
     for (SearchGroup<BytesRef> sg : searchGroups) {
-      if (sg.groupValue == null)
+      if (sg.groupValue == null) {
         includeEmpty = true;
-      else
+      } else {
         this.values.add(sg.groupValue);
+      }
     }
     this.secondPass = true;
   }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java
index b14e675..3ceb388 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroups.java
@@ -24,9 +24,11 @@ import org.apache.lucene.search.TopFieldDocs;
 import org.apache.lucene.search.TotalHits;
 import org.apache.lucene.search.TotalHits.Relation;
 
-/** Represents result returned by a grouping search.
+/**
+ * Represents result returned by a grouping search.
  *
- * @lucene.experimental */
+ * @lucene.experimental
+ */
 public class TopGroups<T> {
   /** Number of documents matching the search */
   public final int totalHitCount;
@@ -46,11 +48,16 @@ public class TopGroups<T> {
   /** How docs are sorted within each group */
   public final SortField[] withinGroupSort;
 
-  /** Highest score across all hits, or
-   *  <code>Float.NaN</code> if scores were not computed. */
+  /** Highest score across all hits, or <code>Float.NaN</code> if scores were not computed. */
   public final float maxScore;
 
-  public TopGroups(SortField[] groupSort, SortField[] withinGroupSort, int totalHitCount, int totalGroupedHitCount, GroupDocs<T>[] groups, float maxScore) {
+  public TopGroups(
+      SortField[] groupSort,
+      SortField[] withinGroupSort,
+      int totalHitCount,
+      int totalGroupedHitCount,
+      GroupDocs<T>[] groups,
+      float maxScore) {
     this.groupSort = groupSort;
     this.withinGroupSort = withinGroupSort;
     this.totalHitCount = totalHitCount;
@@ -73,7 +80,7 @@ public class TopGroups<T> {
   /** How the GroupDocs score (if any) should be merged. */
   public enum ScoreMergeMode {
     /** Set score to Float.NaN */
-    None,     
+    None,
     /* Sum score across all shards for this group. */
     Total,
     /* Avg score across all shards for this group. */
@@ -81,8 +88,9 @@ public class TopGroups<T> {
   }
 
   /**
-   * If either value is NaN then return the other value, otherwise
-   * return the greater of the two values by calling Math.max.
+   * If either value is NaN then return the other value, otherwise return the greater of the two
+   * values by calling Math.max.
+   *
    * @param a - one value
    * @param b - another value
    * @return ignoring any NaN return the greater of a and b
@@ -93,26 +101,27 @@ public class TopGroups<T> {
     return Math.max(a, b);
   }
 
-  /** Merges an array of TopGroups, for example obtained
-   *  from the second-pass collector across multiple
-   *  shards.  Each TopGroups must have been sorted by the
-   *  same groupSort and docSort, and the top groups passed
-   *  to all second-pass collectors must be the same.
+  /**
+   * Merges an array of TopGroups, for example obtained from the second-pass collector across
+   * multiple shards. Each TopGroups must have been sorted by the same groupSort and docSort, and
+   * the top groups passed to all second-pass collectors must be the same.
    *
-   * <b>NOTE</b>: We can't always compute an exact totalGroupCount.
-   * Documents belonging to a group may occur on more than
-   * one shard and thus the merged totalGroupCount can be
-   * higher than the actual totalGroupCount. In this case the
-   * totalGroupCount represents a upper bound. If the documents
-   * of one group do only reside in one shard then the
-   * totalGroupCount is exact.
+   * <p><b>NOTE</b>: We can't always compute an exact totalGroupCount. Documents belonging to a
+   * group may occur on more than one shard and thus the merged totalGroupCount can be higher than
+   * the actual totalGroupCount. In this case the totalGroupCount represents a upper bound. If the
+   * documents of one group do only reside in one shard then the totalGroupCount is exact.
    *
-   * <b>NOTE</b>: the topDocs in each GroupDocs is actually
-   * an instance of TopDocsAndShards
+   * <p><b>NOTE</b>: the topDocs in each GroupDocs is actually an instance of TopDocsAndShards
    */
-  public static <T> TopGroups<T> merge(TopGroups<T>[] shardGroups, Sort groupSort, Sort docSort, int docOffset, int docTopN, ScoreMergeMode scoreMergeMode) {
+  public static <T> TopGroups<T> merge(
+      TopGroups<T>[] shardGroups,
+      Sort groupSort,
+      Sort docSort,
+      int docOffset,
+      int docTopN,
+      ScoreMergeMode scoreMergeMode) {
 
-    //System.out.println("TopGroups.merge");
+    // System.out.println("TopGroups.merge");
 
     if (shardGroups.length == 0) {
       return null;
@@ -124,9 +133,10 @@ public class TopGroups<T> {
     Integer totalGroupCount = null;
 
     final int numGroups = shardGroups[0].groups.length;
-    for(TopGroups<T> shard : shardGroups) {
+    for (TopGroups<T> shard : shardGroups) {
       if (numGroups != shard.groups.length) {
-        throw new IllegalArgumentException("number of groups differs across shards; you must pass same top groups to all shards' second-pass collector");
+        throw new IllegalArgumentException(
+            "number of groups differs across shards; you must pass same top groups to all shards' second-pass collector");
       }
       totalHitCount += shard.totalHitCount;
       totalGroupedHitCount += shard.totalGroupedHitCount;
@@ -139,7 +149,7 @@ public class TopGroups<T> {
       }
     }
 
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     final GroupDocs<T>[] mergedGroupDocs = new GroupDocs[numGroups];
 
     final TopDocs[] shardTopDocs;
@@ -150,22 +160,25 @@ public class TopGroups<T> {
     }
     float totalMaxScore = Float.NaN;
 
-    for(int groupIDX=0;groupIDX<numGroups;groupIDX++) {
+    for (int groupIDX = 0; groupIDX < numGroups; groupIDX++) {
       final T groupValue = shardGroups[0].groups[groupIDX].groupValue;
-      //System.out.println("  merge groupValue=" + groupValue + " sortValues=" + Arrays.toString(shardGroups[0].groups[groupIDX].groupSortValues));
+      // System.out.println("  merge groupValue=" + groupValue + " sortValues=" +
+      // Arrays.toString(shardGroups[0].groups[groupIDX].groupSortValues));
       float maxScore = Float.NaN;
       int totalHits = 0;
       double scoreSum = 0.0;
-      for(int shardIDX=0;shardIDX<shardGroups.length;shardIDX++) {
-        //System.out.println("    shard=" + shardIDX);
+      for (int shardIDX = 0; shardIDX < shardGroups.length; shardIDX++) {
+        // System.out.println("    shard=" + shardIDX);
         final TopGroups<T> shard = shardGroups[shardIDX];
         final GroupDocs<?> shardGroupDocs = shard.groups[groupIDX];
         if (groupValue == null) {
           if (shardGroupDocs.groupValue != null) {
-            throw new IllegalArgumentException("group values differ across shards; you must pass same top groups to all shards' second-pass collector");
+            throw new IllegalArgumentException(
+                "group values differ across shards; you must pass same top groups to all shards' second-pass collector");
           }
         } else if (!groupValue.equals(shardGroupDocs.groupValue)) {
-          throw new IllegalArgumentException("group values differ across shards; you must pass same top groups to all shards' second-pass collector");
+          throw new IllegalArgumentException(
+              "group values differ across shards; you must pass same top groups to all shards' second-pass collector");
         }
 
         /*
@@ -175,19 +188,18 @@ public class TopGroups<T> {
         */
 
         if (docSort.equals(Sort.RELEVANCE)) {
-          shardTopDocs[shardIDX] = new TopDocs(shardGroupDocs.totalHits,
-                                               shardGroupDocs.scoreDocs);
+          shardTopDocs[shardIDX] = new TopDocs(shardGroupDocs.totalHits, shardGroupDocs.scoreDocs);
         } else {
-          shardTopDocs[shardIDX] = new TopFieldDocs(shardGroupDocs.totalHits,
-              shardGroupDocs.scoreDocs,
-              docSort.getSort());
+          shardTopDocs[shardIDX] =
+              new TopFieldDocs(
+                  shardGroupDocs.totalHits, shardGroupDocs.scoreDocs, docSort.getSort());
         }
 
         for (int i = 0; i < shardTopDocs[shardIDX].scoreDocs.length; i++) {
           shardTopDocs[shardIDX].scoreDocs[i].shardIndex = shardIDX;
         }
 
-        maxScore =  nonNANmax(maxScore, shardGroupDocs.maxScore);
+        maxScore = nonNANmax(maxScore, shardGroupDocs.maxScore);
         assert shardGroupDocs.totalHits.relation == Relation.EQUAL_TO;
         totalHits += shardGroupDocs.totalHits.value;
         scoreSum += shardGroupDocs.score;
@@ -208,57 +220,63 @@ public class TopGroups<T> {
         mergedScoreDocs = new ScoreDoc[0];
       } else {
         mergedScoreDocs = new ScoreDoc[mergedTopDocs.scoreDocs.length - docOffset];
-        System.arraycopy(mergedTopDocs.scoreDocs,
-                         docOffset,
-                         mergedScoreDocs,
-                         0,
-                         mergedTopDocs.scoreDocs.length - docOffset);
+        System.arraycopy(
+            mergedTopDocs.scoreDocs,
+            docOffset,
+            mergedScoreDocs,
+            0,
+            mergedTopDocs.scoreDocs.length - docOffset);
       }
 
       final float groupScore;
-      switch(scoreMergeMode) {
-      case None:
-        groupScore = Float.NaN;
-        break;
-      case Avg:
-        if (totalHits > 0) {
-          groupScore = (float) (scoreSum / totalHits);
-        } else {
+      switch (scoreMergeMode) {
+        case None:
           groupScore = Float.NaN;
-        }
-        break;
-      case Total:
-        groupScore = (float) scoreSum;
-        break;
-      default:
-        throw new IllegalArgumentException("can't handle ScoreMergeMode " + scoreMergeMode);
+          break;
+        case Avg:
+          if (totalHits > 0) {
+            groupScore = (float) (scoreSum / totalHits);
+          } else {
+            groupScore = Float.NaN;
+          }
+          break;
+        case Total:
+          groupScore = (float) scoreSum;
+          break;
+        default:
+          throw new IllegalArgumentException("can't handle ScoreMergeMode " + scoreMergeMode);
       }
-        
-      //System.out.println("SHARDS=" + Arrays.toString(mergedTopDocs.shardIndex));
-      mergedGroupDocs[groupIDX] = new GroupDocs<>(groupScore,
-                                                   maxScore,
-                                                   new TotalHits(totalHits, TotalHits.Relation.EQUAL_TO),
-                                                   mergedScoreDocs,
-                                                   groupValue,
-                                                   shardGroups[0].groups[groupIDX].groupSortValues);
+
+      // System.out.println("SHARDS=" + Arrays.toString(mergedTopDocs.shardIndex));
+      mergedGroupDocs[groupIDX] =
+          new GroupDocs<>(
+              groupScore,
+              maxScore,
+              new TotalHits(totalHits, TotalHits.Relation.EQUAL_TO),
+              mergedScoreDocs,
+              groupValue,
+              shardGroups[0].groups[groupIDX].groupSortValues);
       totalMaxScore = nonNANmax(totalMaxScore, maxScore);
     }
 
     if (totalGroupCount != null) {
-      TopGroups<T> result = new TopGroups<>(groupSort.getSort(),
-                              docSort.getSort(),
-                              totalHitCount,
-                              totalGroupedHitCount,
-                              mergedGroupDocs,
-                              totalMaxScore);
+      TopGroups<T> result =
+          new TopGroups<>(
+              groupSort.getSort(),
+              docSort.getSort(),
+              totalHitCount,
+              totalGroupedHitCount,
+              mergedGroupDocs,
+              totalMaxScore);
       return new TopGroups<>(result, totalGroupCount);
     } else {
-      return new TopGroups<>(groupSort.getSort(),
-                              docSort.getSort(),
-                              totalHitCount,
-                              totalGroupedHitCount,
-                              mergedGroupDocs,
-                              totalMaxScore);
+      return new TopGroups<>(
+          groupSort.getSort(),
+          docSort.getSort(),
+          totalHitCount,
+          totalGroupedHitCount,
+          mergedGroupDocs,
+          totalMaxScore);
     }
   }
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroupsCollector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroupsCollector.java
index 01e9928..b3cbb25 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroupsCollector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/TopGroupsCollector.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.function.Supplier;
-
 import org.apache.lucene.search.FilterCollector;
 import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.search.Scorable;
@@ -36,8 +35,8 @@ import org.apache.lucene.search.TopScoreDocCollector;
 import org.apache.lucene.util.ArrayUtil;
 
 /**
- * A second-pass collector that collects the TopDocs for each group, and
- * returns them as a {@link TopGroups} object
+ * A second-pass collector that collects the TopDocs for each group, and returns them as a {@link
+ * TopGroups} object
  *
  * @param <T> the type of the group value
  */
@@ -49,21 +48,28 @@ public class TopGroupsCollector<T> extends SecondPassGroupingCollector<T> {
 
   /**
    * Create a new TopGroupsCollector
-   * @param groupSelector     the group selector used to define groups
-   * @param groups            the groups to collect TopDocs for
-   * @param groupSort         the order in which groups are returned
-   * @param withinGroupSort   the order in which documents are sorted in each group
-   * @param maxDocsPerGroup   the maximum number of docs to collect for each group
-   * @param getMaxScores      if true, record the maximum score for each group
+   *
+   * @param groupSelector the group selector used to define groups
+   * @param groups the groups to collect TopDocs for
+   * @param groupSort the order in which groups are returned
+   * @param withinGroupSort the order in which documents are sorted in each group
+   * @param maxDocsPerGroup the maximum number of docs to collect for each group
+   * @param getMaxScores if true, record the maximum score for each group
    */
-  public TopGroupsCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, Sort groupSort, Sort withinGroupSort,
-                            int maxDocsPerGroup, boolean getMaxScores) {
-    super(groupSelector, groups,
+  public TopGroupsCollector(
+      GroupSelector<T> groupSelector,
+      Collection<SearchGroup<T>> groups,
+      Sort groupSort,
+      Sort withinGroupSort,
+      int maxDocsPerGroup,
+      boolean getMaxScores) {
+    super(
+        groupSelector,
+        groups,
         new TopDocsReducer<>(withinGroupSort, maxDocsPerGroup, getMaxScores));
     this.groupSort = Objects.requireNonNull(groupSort);
     this.withinGroupSort = Objects.requireNonNull(withinGroupSort);
     this.maxDocsPerGroup = maxDocsPerGroup;
-
   }
 
   private static class MaxScoreCollector extends SimpleCollector {
@@ -98,8 +104,11 @@ public class TopGroupsCollector<T> extends SecondPassGroupingCollector<T> {
     private final TopDocsCollector<?> topDocsCollector;
     private final MaxScoreCollector maxScoreCollector;
     private final boolean sortedByScore;
-    
-    public TopDocsAndMaxScoreCollector(boolean sortedByScore, TopDocsCollector<?> topDocsCollector, MaxScoreCollector maxScoreCollector) {
+
+    public TopDocsAndMaxScoreCollector(
+        boolean sortedByScore,
+        TopDocsCollector<?> topDocsCollector,
+        MaxScoreCollector maxScoreCollector) {
       super(MultiCollector.wrap(topDocsCollector, maxScoreCollector));
       this.sortedByScore = sortedByScore;
       this.topDocsCollector = topDocsCollector;
@@ -112,17 +121,24 @@ public class TopGroupsCollector<T> extends SecondPassGroupingCollector<T> {
     private final Supplier<TopDocsAndMaxScoreCollector> supplier;
     private final boolean needsScores;
 
-    TopDocsReducer(Sort withinGroupSort,
-                   int maxDocsPerGroup, boolean getMaxScores) {
+    TopDocsReducer(Sort withinGroupSort, int maxDocsPerGroup, boolean getMaxScores) {
       this.needsScores = getMaxScores || withinGroupSort.needsScores();
       if (withinGroupSort == Sort.RELEVANCE) {
-        supplier = () -> new TopDocsAndMaxScoreCollector(true, TopScoreDocCollector.create(maxDocsPerGroup, Integer.MAX_VALUE), null);
+        supplier =
+            () ->
+                new TopDocsAndMaxScoreCollector(
+                    true, TopScoreDocCollector.create(maxDocsPerGroup, Integer.MAX_VALUE), null);
       } else {
-        supplier = () -> {
-          TopFieldCollector topDocsCollector = TopFieldCollector.create(withinGroupSort, maxDocsPerGroup, Integer.MAX_VALUE); // TODO: disable exact counts?
-          MaxScoreCollector maxScoreCollector = getMaxScores ? new MaxScoreCollector() : null;
-          return new TopDocsAndMaxScoreCollector(false, topDocsCollector, maxScoreCollector);
-        };
+        supplier =
+            () -> {
+              TopFieldCollector topDocsCollector =
+                  TopFieldCollector.create(
+                      withinGroupSort,
+                      maxDocsPerGroup,
+                      Integer.MAX_VALUE); // TODO: disable exact counts?
+              MaxScoreCollector maxScoreCollector = getMaxScores ? new MaxScoreCollector() : null;
+              return new TopDocsAndMaxScoreCollector(false, topDocsCollector, maxScoreCollector);
+            };
       }
     }
 
@@ -139,25 +155,34 @@ public class TopGroupsCollector<T> extends SecondPassGroupingCollector<T> {
 
   /**
    * Get the TopGroups recorded by this collector
+   *
    * @param withinGroupOffset the offset within each group to start collecting documents
    */
   public TopGroups<T> getTopGroups(int withinGroupOffset) {
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     final GroupDocs<T>[] groupDocsResult = (GroupDocs<T>[]) new GroupDocs[groups.size()];
 
     int groupIDX = 0;
     float maxScore = Float.MIN_VALUE;
-    for(SearchGroup<T> group : groups) {
-      TopDocsAndMaxScoreCollector collector = (TopDocsAndMaxScoreCollector) groupReducer.getCollector(group.groupValue);
+    for (SearchGroup<T> group : groups) {
+      TopDocsAndMaxScoreCollector collector =
+          (TopDocsAndMaxScoreCollector) groupReducer.getCollector(group.groupValue);
       final TopDocs topDocs;
       final float groupMaxScore;
       if (collector.sortedByScore) {
         TopDocs allTopDocs = collector.topDocsCollector.topDocs();
-        groupMaxScore = allTopDocs.scoreDocs.length == 0 ? Float.NaN : allTopDocs.scoreDocs[0].score;
+        groupMaxScore =
+            allTopDocs.scoreDocs.length == 0 ? Float.NaN : allTopDocs.scoreDocs[0].score;
         if (allTopDocs.scoreDocs.length <= withinGroupOffset) {
           topDocs = new TopDocs(allTopDocs.totalHits, new ScoreDoc[0]);
         } else {
-          topDocs = new TopDocs(allTopDocs.totalHits, ArrayUtil.copyOfSubArray(allTopDocs.scoreDocs, withinGroupOffset, Math.min(allTopDocs.scoreDocs.length, withinGroupOffset + maxDocsPerGroup)));
+          topDocs =
+              new TopDocs(
+                  allTopDocs.totalHits,
+                  ArrayUtil.copyOfSubArray(
+                      allTopDocs.scoreDocs,
+                      withinGroupOffset,
+                      Math.min(allTopDocs.scoreDocs.length, withinGroupOffset + maxDocsPerGroup)));
         }
       } else {
         topDocs = collector.topDocsCollector.topDocs(withinGroupOffset, maxDocsPerGroup);
@@ -167,21 +192,24 @@ public class TopGroupsCollector<T> extends SecondPassGroupingCollector<T> {
           groupMaxScore = collector.maxScoreCollector.getMaxScore();
         }
       }
-      
-      groupDocsResult[groupIDX++] = new GroupDocs<>(Float.NaN,
-          groupMaxScore,
-          topDocs.totalHits,
-          topDocs.scoreDocs,
-          group.groupValue,
-          group.sortValues);
+
+      groupDocsResult[groupIDX++] =
+          new GroupDocs<>(
+              Float.NaN,
+              groupMaxScore,
+              topDocs.totalHits,
+              topDocs.scoreDocs,
+              group.groupValue,
+              group.sortValues);
       maxScore = Math.max(maxScore, groupMaxScore);
     }
 
-    return new TopGroups<>(groupSort.getSort(),
+    return new TopGroups<>(
+        groupSort.getSort(),
         withinGroupSort.getSort(),
-        totalHitCount, totalGroupedHitCount, groupDocsResult,
+        totalHitCount,
+        totalGroupedHitCount,
+        groupDocsResult,
         maxScore);
   }
-
-
 }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/ValueSourceGroupSelector.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/ValueSourceGroupSelector.java
index 54373de..63e95d8 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/ValueSourceGroupSelector.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/ValueSourceGroupSelector.java
@@ -22,16 +22,13 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.search.Scorable;
 import org.apache.lucene.util.mutable.MutableValue;
 
-/**
- * A GroupSelector that groups via a ValueSource
- */
+/** A GroupSelector that groups via a ValueSource */
 public class ValueSourceGroupSelector extends GroupSelector<MutableValue> {
 
   private final ValueSource valueSource;
@@ -41,8 +38,9 @@ public class ValueSourceGroupSelector extends GroupSelector<MutableValue> {
 
   /**
    * Create a new ValueSourceGroupSelector
+   *
    * @param valueSource the ValueSource to group by
-   * @param context     a context map for the ValueSource
+   * @param context a context map for the ValueSource
    */
   public ValueSourceGroupSelector(ValueSource valueSource, Map<Object, Object> context) {
     this.valueSource = valueSource;
@@ -58,14 +56,15 @@ public class ValueSourceGroupSelector extends GroupSelector<MutableValue> {
   }
 
   @Override
-  public void setScorer(Scorable scorer) throws IOException { }
+  public void setScorer(Scorable scorer) throws IOException {}
 
   @Override
   public State advanceTo(int doc) throws IOException {
     this.filler.fillValue(doc);
     if (secondPassGroups != null) {
-      if (secondPassGroups.contains(filler.getValue()) == false)
+      if (secondPassGroups.contains(filler.getValue()) == false) {
         return State.SKIP;
+      }
     }
     return State.ACCEPT;
   }
diff --git a/lucene/grouping/src/java/org/apache/lucene/search/grouping/package-info.java b/lucene/grouping/src/java/org/apache/lucene/search/grouping/package-info.java
index 36d94a5..5c1b124 100644
--- a/lucene/grouping/src/java/org/apache/lucene/search/grouping/package-info.java
+++ b/lucene/grouping/src/java/org/apache/lucene/search/grouping/package-info.java
@@ -15,143 +15,125 @@
  * limitations under the License.
  */
 
-/** 
+/**
  * Grouping.
- * <p>
- * This module enables search result grouping with Lucene, where hits
- * with the same value in the specified single-valued group field are
- * grouped together.  For example, if you group by the <code>author</code>
- * field, then all documents with the same value in the <code>author</code>
- * field fall into a single group.
- * </p>
- * 
- * <p>Grouping requires a number of inputs:</p>
- * 
+ *
+ * <p>This module enables search result grouping with Lucene, where hits with the same value in the
+ * specified single-valued group field are grouped together. For example, if you group by the <code>
+ * author</code> field, then all documents with the same value in the <code>author</code> field fall
+ * into a single group.
+ *
+ * <p>Grouping requires a number of inputs:
+ *
  * <ul>
- *   <li><code>groupSelector</code>: this defines how groups are created
- *       from values per-document.  The grouping module ships with
- *       selectors for grouping by term, and by long and double ranges.
- * 
- *   <li><code>groupSort</code>: how the groups are sorted.  For sorting
- *       purposes, each group is "represented" by the highest-sorted
- *       document according to the <code>groupSort</code> within it.  For
- *       example, if you specify "price" (ascending) then the first group
- *       is the one with the lowest price book within it.  Or if you
- *       specify relevance group sort, then the first group is the one
- *       containing the highest scoring book.
- * 
- *   <li><code>topNGroups</code>: how many top groups to keep.  For
- *       example, 10 means the top 10 groups are computed.
- * 
- *   <li><code>groupOffset</code>: which "slice" of top groups you want to
- *       retrieve.  For example, 3 means you'll get 7 groups back
- *       (assuming <code>topNGroups</code> is 10).  This is useful for
+ *   <li><code>groupSelector</code>: this defines how groups are created from values per-document.
+ *       The grouping module ships with selectors for grouping by term, and by long and double
+ *       ranges.
+ *   <li><code>groupSort</code>: how the groups are sorted. For sorting purposes, each group is
+ *       "represented" by the highest-sorted document according to the <code>groupSort</code> within
+ *       it. For example, if you specify "price" (ascending) then the first group is the one with
+ *       the lowest price book within it. Or if you specify relevance group sort, then the first
+ *       group is the one containing the highest scoring book.
+ *   <li><code>topNGroups</code>: how many top groups to keep. For example, 10 means the top 10
+ *       groups are computed.
+ *   <li><code>groupOffset</code>: which "slice" of top groups you want to retrieve. For example, 3
+ *       means you'll get 7 groups back (assuming <code>topNGroups</code> is 10). This is useful for
  *       paging, where you might show 5 groups per page.
- * 
- *   <li><code>withinGroupSort</code>: how the documents within each group
- *       are sorted.  This can be different from the group sort.
- * 
- *   <li><code>maxDocsPerGroup</code>: how many top documents within each
- *       group to keep.
- * 
- *   <li><code>withinGroupOffset</code>: which "slice" of top
- *       documents you want to retrieve from each group.
- * 
+ *   <li><code>withinGroupSort</code>: how the documents within each group are sorted. This can be
+ *       different from the group sort.
+ *   <li><code>maxDocsPerGroup</code>: how many top documents within each group to keep.
+ *   <li><code>withinGroupOffset</code>: which "slice" of top documents you want to retrieve from
+ *       each group.
  * </ul>
- * 
+ *
  * <p>The implementation is two-pass: the first pass ({@link
- *   org.apache.lucene.search.grouping.FirstPassGroupingCollector})
- *   gathers the top groups, and the second pass ({@link
- *   org.apache.lucene.search.grouping.SecondPassGroupingCollector})
- *   gathers documents within those groups.  If the search is costly to
- *   run you may want to use the {@link
- *   org.apache.lucene.search.CachingCollector} class, which
- *   caches hits and can (quickly) replay them for the second pass.  This
- *   way you only run the query once, but you pay a RAM cost to (briefly)
- *   hold all hits.  Results are returned as a {@link
- *   org.apache.lucene.search.grouping.TopGroups} instance.</p>
- * 
- * <p>Groups are defined by {@link org.apache.lucene.search.grouping.GroupSelector}
- *   implementations:</p>
- *   <ul>
- *     <li>{@link org.apache.lucene.search.grouping.TermGroupSelector} groups based on
- *     the value of a {@link org.apache.lucene.index.SortedDocValues} field</li>
- *     <li>{@link org.apache.lucene.search.grouping.ValueSourceGroupSelector} groups based on
- *     the value of a {@link org.apache.lucene.queries.function.ValueSource}</li>
- *     <li>{@link org.apache.lucene.search.grouping.DoubleRangeGroupSelector} groups based on
- *     the value of a {@link org.apache.lucene.search.DoubleValuesSource}</li>
- *     <li>{@link org.apache.lucene.search.grouping.LongRangeGroupSelector} groups based on
- *     the value of a {@link org.apache.lucene.search.LongValuesSource}</li>
- *   </ul>
- * 
- * <p>Known limitations:</p>
+ * org.apache.lucene.search.grouping.FirstPassGroupingCollector}) gathers the top groups, and the
+ * second pass ({@link org.apache.lucene.search.grouping.SecondPassGroupingCollector}) gathers
+ * documents within those groups. If the search is costly to run you may want to use the {@link
+ * org.apache.lucene.search.CachingCollector} class, which caches hits and can (quickly) replay them
+ * for the second pass. This way you only run the query once, but you pay a RAM cost to (briefly)
+ * hold all hits. Results are returned as a {@link org.apache.lucene.search.grouping.TopGroups}
+ * instance.
+ *
+ * <p>Groups are defined by {@link org.apache.lucene.search.grouping.GroupSelector} implementations:
+ *
  * <ul>
- *   <li> Sharding is not directly supported, though is not too
- *     difficult, if you can merge the top groups and top documents per
- *     group yourself.
+ *   <li>{@link org.apache.lucene.search.grouping.TermGroupSelector} groups based on the value of a
+ *       {@link org.apache.lucene.index.SortedDocValues} field
+ *   <li>{@link org.apache.lucene.search.grouping.ValueSourceGroupSelector} groups based on the
+ *       value of a {@link org.apache.lucene.queries.function.ValueSource}
+ *   <li>{@link org.apache.lucene.search.grouping.DoubleRangeGroupSelector} groups based on the
+ *       value of a {@link org.apache.lucene.search.DoubleValuesSource}
+ *   <li>{@link org.apache.lucene.search.grouping.LongRangeGroupSelector} groups based on the value
+ *       of a {@link org.apache.lucene.search.LongValuesSource}
  * </ul>
- * 
- * <p>Typical usage for the generic two-pass grouping search looks like this using the grouping convenience utility
- *   (optionally using caching for the second pass search):</p>
- * 
+ *
+ * <p>Known limitations:
+ *
+ * <ul>
+ *   <li>Sharding is not directly supported, though is not too difficult, if you can merge the top
+ *       groups and top documents per group yourself.
+ * </ul>
+ *
+ * <p>Typical usage for the generic two-pass grouping search looks like this using the grouping
+ * convenience utility (optionally using caching for the second pass search):
+ *
  * <pre class="prettyprint">
  *   GroupingSearch groupingSearch = new GroupingSearch("author");
  *   groupingSearch.setGroupSort(groupSort);
  *   groupingSearch.setFillSortFields(fillFields);
- * 
+ *
  *   if (useCache) {
  *     // Sets cache in MB
  *     groupingSearch.setCachingInMB(4.0, true);
  *   }
- * 
+ *
  *   if (requiredTotalGroupCount) {
  *     groupingSearch.setAllGroups(true);
  *   }
- * 
+ *
  *   TermQuery query = new TermQuery(new Term("content", searchTerm));
  *   TopGroups&lt;BytesRef&gt; result = groupingSearch.search(indexSearcher, query, groupOffset, groupLimit);
- * 
+ *
  *   // Render groupsResult...
  *   if (requiredTotalGroupCount) {
  *     int totalGroupCount = result.totalGroupCount;
  *   }
  * </pre>
- * 
- * <p>To use the single-pass <code>BlockGroupingCollector</code>,
- *    first, at indexing time, you must ensure all docs in each group
- *    are added as a block, and you have some way to find the last
- *    document of each group.  One simple way to do this is to add a
- *    marker binary field:</p>
- * 
+ *
+ * <p>To use the single-pass <code>BlockGroupingCollector</code>, first, at indexing time, you must
+ * ensure all docs in each group are added as a block, and you have some way to find the last
+ * document of each group. One simple way to do this is to add a marker binary field:
+ *
  * <pre class="prettyprint">
  *   // Create Documents from your source:
  *   List&lt;Document&gt; oneGroup = ...;
- *   
+ *
  *   Field groupEndField = new Field("groupEnd", "x", Field.Store.NO, Field.Index.NOT_ANALYZED);
  *   groupEndField.setIndexOptions(IndexOptions.DOCS_ONLY);
  *   groupEndField.setOmitNorms(true);
  *   oneGroup.get(oneGroup.size()-1).add(groupEndField);
- * 
+ *
  *   // You can also use writer.updateDocuments(); just be sure you
  *   // replace an entire previous doc block with this new one.  For
  *   // example, each group could have a "groupID" field, with the same
  *   // value for all docs in this group:
  *   writer.addDocuments(oneGroup);
  * </pre>
- * 
+ *
  * Then, at search time:
- * 
+ *
  * <pre class="prettyprint">
  *   Query groupEndDocs = new TermQuery(new Term("groupEnd", "x"));
  *   BlockGroupingCollector c = new BlockGroupingCollector(groupSort, groupOffset+topNGroups, needsScores, groupEndDocs);
  *   s.search(new TermQuery(new Term("content", searchTerm)), c);
  *   TopGroups groupsResult = c.getTopGroups(withinGroupSort, groupOffset, docOffset, docOffset+docsPerGroup, fillFields);
- * 
+ *
  *   // Render groupsResult...
  * </pre>
- * 
+ *
  * Or alternatively use the <code>GroupingSearch</code> convenience utility:
- * 
+ *
  * <pre class="prettyprint">
  *   // Per search:
  *   GroupingSearch groupingSearch = new GroupingSearch(groupEndDocs);
@@ -162,18 +144,18 @@
  *
  *   // Render groupsResult...
  * </pre>
- * 
- * Note that the <code>groupValue</code> of each <code>GroupDocs</code>
- * will be <code>null</code>, so if you need to present this value you'll
- * have to separately retrieve it (for example using stored
- * fields, <code>FieldCache</code>, etc.).
- * 
- * <p>Another collector is the <code>AllGroupHeadsCollector</code> that can be used to retrieve all most relevant
- *    documents per group. Also known as group heads. This can be useful in situations when one wants to compute group
- *    based facets / statistics on the complete query result. The collector can be executed during the first or second
- *    phase. This collector can also be used with the <code>GroupingSearch</code> convenience utility, but when if one only
- *    wants to compute the most relevant documents per group it is better to just use the collector as done here below.</p>
- * 
+ *
+ * Note that the <code>groupValue</code> of each <code>GroupDocs</code> will be <code>null</code>,
+ * so if you need to present this value you'll have to separately retrieve it (for example using
+ * stored fields, <code>FieldCache</code>, etc.).
+ *
+ * <p>Another collector is the <code>AllGroupHeadsCollector</code> that can be used to retrieve all
+ * most relevant documents per group. Also known as group heads. This can be useful in situations
+ * when one wants to compute group based facets / statistics on the complete query result. The
+ * collector can be executed during the first or second phase. This collector can also be used with
+ * the <code>GroupingSearch</code> convenience utility, but when if one only wants to compute the
+ * most relevant documents per group it is better to just use the collector as done here below.
+ *
  * <pre class="prettyprint">
  *   TermGroupSelector grouper = new TermGroupSelector(groupField);
  *   AllGroupHeadsCollector c = AllGroupHeadsCollector.newCollector(grouper, sortWithinGroup);
@@ -184,6 +166,5 @@
  *   int maxDoc = s.maxDoc();
  *   FixedBitSet groupHeadsBitSet = c.retrieveGroupHeads(maxDoc)
  * </pre>
- *
  */
 package org.apache.lucene.search.grouping;
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/AbstractGroupingTestCase.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/AbstractGroupingTestCase.java
index e256667..0156acb 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/AbstractGroupingTestCase.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/AbstractGroupingTestCase.java
@@ -18,7 +18,6 @@ package org.apache.lucene.search.grouping;
 
 import java.io.Closeable;
 import java.io.IOException;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.search.IndexSearcher;
@@ -28,10 +27,9 @@ import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.TestUtil;
 
-/**
- * Base class for grouping related tests.
- */
-// TODO (MvG) : The grouping tests contain a lot of code duplication. Try to move the common code to this class..
+/** Base class for grouping related tests. */
+// TODO (MvG) : The grouping tests contain a lot of code duplication. Try to move the common code to
+// this class..
 public abstract class AbstractGroupingTestCase extends LuceneTestCase {
 
   protected String generateRandomNonEmptyString() {
@@ -41,7 +39,7 @@ public abstract class AbstractGroupingTestCase extends LuceneTestCase {
       // For that reason we don't generate empty string
       // groups.
       randomValue = TestUtil.randomRealisticUnicodeString(random());
-      //randomValue = _TestUtil.randomSimpleString(random());
+      // randomValue = _TestUtil.randomSimpleString(random());
     } while ("".equals(randomValue));
     return randomValue;
   }
@@ -62,8 +60,11 @@ public abstract class AbstractGroupingTestCase extends LuceneTestCase {
 
     Shard() throws IOException {
       this.directory = newDirectory();
-      this.writer = new RandomIndexWriter(random(), directory,
-          newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+      this.writer =
+          new RandomIndexWriter(
+              random(),
+              directory,
+              newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     }
 
     IndexSearcher getIndexSearcher() throws IOException {
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java
index bb2a946..d3e84af 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.NumericDocValuesField;
@@ -54,7 +53,7 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     Shard shard = new Shard();
     indexRandomDocs(shard.writer);
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
     IndexSearcher searcher = shard.getIndexSearcher();
@@ -65,10 +64,11 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     for (int i = 0; i < topGroups.groups.length; i++) {
       // Each group should have a result set equal to that returned by the top-level query,
       // filtered by the group value.
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10);
       assertScoreDocsEquals(topGroups.groups[i].scoreDocs, td.scoreDocs);
       if (i == 0) {
@@ -86,12 +86,15 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     indexRandomDocs(shard.writer);
     IndexSearcher searcher = shard.getIndexSearcher();
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
     GroupingSearch grouper = new GroupingSearch(getGroupSelector());
     grouper.setGroupDocsLimit(10);
-    Sort sort = new Sort(new SortField("sort1", SortField.Type.STRING), new SortField("sort2", SortField.Type.LONG));
+    Sort sort =
+        new Sort(
+            new SortField("sort1", SortField.Type.STRING),
+            new SortField("sort2", SortField.Type.LONG));
     grouper.setGroupSort(sort);
     TopGroups<T> topGroups = grouper.search(searcher, topLevel, 0, 5);
     TopDocs topDoc = searcher.search(topLevel, 1, sort);
@@ -99,10 +102,11 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
       // We're sorting the groups by a defined Sort, but each group itself should be ordered
       // by doc relevance, and should be equal to the results of a top-level query filtered
       // by the group value
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10);
       assertScoreDocsEquals(topGroups.groups[i].scoreDocs, td.scoreDocs);
       // The top group should have sort values equal to the sort values of the top doc of
@@ -111,7 +115,8 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
       if (i > 0) {
         assertSortsBefore(topGroups.groups[i - 1], topGroups.groups[i]);
       } else {
-        assertArrayEquals(((FieldDoc)topDoc.scoreDocs[0]).fields, topGroups.groups[0].groupSortValues);
+        assertArrayEquals(
+            ((FieldDoc) topDoc.scoreDocs[0]).fields, topGroups.groups[0].groupSortValues);
       }
     }
 
@@ -124,12 +129,15 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     indexRandomDocs(shard.writer);
     IndexSearcher searcher = shard.getIndexSearcher();
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
     GroupingSearch grouper = new GroupingSearch(getGroupSelector());
     grouper.setGroupDocsLimit(10);
-    Sort sort = new Sort(new SortField("sort1", SortField.Type.STRING), new SortField("sort2", SortField.Type.LONG));
+    Sort sort =
+        new Sort(
+            new SortField("sort1", SortField.Type.STRING),
+            new SortField("sort2", SortField.Type.LONG));
     grouper.setSortWithinGroup(sort);
 
     TopGroups<T> topGroups = grouper.search(searcher, topLevel, 0, 5);
@@ -146,16 +154,16 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
       }
       // Groups themselves are ordered by a defined Sort, and each should give the same result as
       // the top-level query, filtered by the group value, with the same Sort
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(topGroups.groups[i].groupValue), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10, sort);
       assertScoreDocsEquals(td.scoreDocs, topGroups.groups[i].scoreDocs);
     }
 
     shard.close();
-
   }
 
   public void testGroupHeads() throws IOException {
@@ -164,7 +172,7 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     indexRandomDocs(shard.writer);
     IndexSearcher searcher = shard.getIndexSearcher();
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
     GroupSelector<T> groupSelector = getGroupSelector();
@@ -180,10 +188,11 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     int totalHits = searcher.count(topLevel);
     int groupHits = 0;
     for (T groupValue : matchingGroups) {
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
+              .build();
       groupHits += searcher.count(filtered);
     }
     assertEquals(totalHits, groupHits);
@@ -195,15 +204,17 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
         cardinality++;
       }
     }
-    assertEquals(matchingGroups.size(), cardinality);   // We should have one set bit per matching group
+    assertEquals(
+        matchingGroups.size(), cardinality); // We should have one set bit per matching group
 
     // Each group head should correspond to the topdoc of a search filtered by
     // that group
     for (T groupValue : matchingGroups) {
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 1);
       assertTrue(groupHeads.get(td.scoreDocs[0].doc));
     }
@@ -217,10 +228,13 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     indexRandomDocs(shard.writer);
     IndexSearcher searcher = shard.getIndexSearcher();
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
-    Sort sort = new Sort(new SortField("sort1", SortField.Type.STRING), new SortField("sort2", SortField.Type.LONG));
+    Sort sort =
+        new Sort(
+            new SortField("sort1", SortField.Type.STRING),
+            new SortField("sort2", SortField.Type.LONG));
     GroupSelector<T> groupSelector = getGroupSelector();
     GroupingSearch grouping = new GroupingSearch(groupSelector);
     grouping.setAllGroups(true);
@@ -237,15 +251,17 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
         cardinality++;
       }
     }
-    assertEquals(matchingGroups.size(), cardinality);   // We should have one set bit per matching group
+    assertEquals(
+        matchingGroups.size(), cardinality); // We should have one set bit per matching group
 
     // Each group head should correspond to the topdoc of a search filtered by
     // that group using the same within-group sort
     for (T groupValue : matchingGroups) {
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(filterQuery(groupValue), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 1, sort);
       assertTrue(groupHeads.get(td.scoreDocs[0].doc));
     }
@@ -263,7 +279,7 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
       shards[i] = new Shard();
     }
 
-    String[] texts = new String[]{ "foo", "bar", "bar baz", "foo foo bar" };
+    String[] texts = new String[] {"foo", "bar", "bar baz", "foo foo bar"};
 
     // Create a bunch of random documents, and index them - once into the control index,
     // and once into a randomly picked shard.
@@ -282,29 +298,35 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
       shards[shard].writer.addDocument(doc);
     }
 
-    String[] query = new String[]{ "foo", "bar", "baz" };
+    String[] query = new String[] {"foo", "bar", "baz"};
     Query topLevel = new TermQuery(new Term("text", query[random().nextInt(query.length)]));
 
-    Sort sort = new Sort(new SortField("sort1", SortField.Type.STRING), new SortField("sort2", SortField.Type.LONG));
+    Sort sort =
+        new Sort(
+            new SortField("sort1", SortField.Type.STRING),
+            new SortField("sort2", SortField.Type.LONG));
 
     // A grouped query run in two phases against the control should give us the same
     // result as the query run against shards and merged back together after each phase.
 
-    FirstPassGroupingCollector<T> singletonFirstPass = new FirstPassGroupingCollector<>(getGroupSelector(), sort, 5);
+    FirstPassGroupingCollector<T> singletonFirstPass =
+        new FirstPassGroupingCollector<>(getGroupSelector(), sort, 5);
     control.getIndexSearcher().search(topLevel, singletonFirstPass);
     Collection<SearchGroup<T>> singletonGroups = singletonFirstPass.getTopGroups(0);
 
     List<Collection<SearchGroup<T>>> shardGroups = new ArrayList<>();
     for (Shard shard : shards) {
-      FirstPassGroupingCollector<T> fc = new FirstPassGroupingCollector<>(getGroupSelector(), sort, 5);
+      FirstPassGroupingCollector<T> fc =
+          new FirstPassGroupingCollector<>(getGroupSelector(), sort, 5);
       shard.getIndexSearcher().search(topLevel, fc);
       shardGroups.add(fc.getTopGroups(0));
     }
     Collection<SearchGroup<T>> mergedGroups = SearchGroup.merge(shardGroups, 0, 5, sort);
     assertEquals(singletonGroups, mergedGroups);
 
-    TopGroupsCollector<T> singletonSecondPass = new TopGroupsCollector<>(getGroupSelector(), singletonGroups, sort,
-        Sort.RELEVANCE, 5, true);
+    TopGroupsCollector<T> singletonSecondPass =
+        new TopGroupsCollector<>(
+            getGroupSelector(), singletonGroups, sort, Sort.RELEVANCE, 5, true);
     control.getIndexSearcher().search(topLevel, singletonSecondPass);
     TopGroups<T> singletonTopGroups = singletonSecondPass.getTopGroups(0);
 
@@ -313,12 +335,14 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     TopGroups<T>[] shardTopGroups = (TopGroups<T>[]) new TopGroups<?>[shards.length];
     int j = 0;
     for (Shard shard : shards) {
-      TopGroupsCollector<T> sc = new TopGroupsCollector<>(getGroupSelector(), mergedGroups, sort, Sort.RELEVANCE, 5, true);
+      TopGroupsCollector<T> sc =
+          new TopGroupsCollector<>(getGroupSelector(), mergedGroups, sort, Sort.RELEVANCE, 5, true);
       shard.getIndexSearcher().search(topLevel, sc);
       shardTopGroups[j] = sc.getTopGroups(0);
       j++;
     }
-    TopGroups<T> mergedTopGroups = TopGroups.merge(shardTopGroups, sort, Sort.RELEVANCE, 0, 5, TopGroups.ScoreMergeMode.None);
+    TopGroups<T> mergedTopGroups =
+        TopGroups.merge(shardTopGroups, sort, Sort.RELEVANCE, 0, 5, TopGroups.ScoreMergeMode.None);
     assertNotNull(mergedTopGroups);
 
     assertEquals(singletonTopGroups.totalGroupedHitCount, mergedTopGroups.totalGroupedHitCount);
@@ -327,18 +351,19 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
     assertEquals(singletonTopGroups.groups.length, mergedTopGroups.groups.length);
     for (int i = 0; i < singletonTopGroups.groups.length; i++) {
       assertEquals(singletonTopGroups.groups[i].groupValue, mergedTopGroups.groups[i].groupValue);
-      assertEquals(singletonTopGroups.groups[i].scoreDocs.length, mergedTopGroups.groups[i].scoreDocs.length);
+      assertEquals(
+          singletonTopGroups.groups[i].scoreDocs.length,
+          mergedTopGroups.groups[i].scoreDocs.length);
     }
 
     control.close();
     for (Shard shard : shards) {
       shard.close();
     }
-
   }
 
   private void indexRandomDocs(RandomIndexWriter w) throws IOException {
-    String[] texts = new String[]{ "foo", "bar", "bar baz", "foo foo bar" };
+    String[] texts = new String[] {"foo", "bar", "bar baz", "foo foo bar"};
 
     int numDocs = atLeast(200);
     for (int i = 0; i < numDocs; i++) {
@@ -356,10 +381,9 @@ public abstract class BaseGroupSelectorTestCase<T> extends AbstractGroupingTestC
   private void assertSortsBefore(GroupDocs<T> first, GroupDocs<T> second) {
     Object[] groupSortValues = second.groupSortValues;
     Object[] prevSortValues = first.groupSortValues;
-    assertTrue(((BytesRef)prevSortValues[0]).compareTo((BytesRef)groupSortValues[0]) <= 0);
+    assertTrue(((BytesRef) prevSortValues[0]).compareTo((BytesRef) groupSortValues[0]) <= 0);
     if (prevSortValues[0].equals(groupSortValues[0])) {
-      assertTrue((long)prevSortValues[1] <= (long)groupSortValues[1]);
+      assertTrue((long) prevSortValues[1] <= (long) groupSortValues[1]);
     }
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupHeadsCollector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupHeadsCollector.java
index fef695f..9b7baae 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupHeadsCollector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupHeadsCollector.java
@@ -27,7 +27,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.BinaryDocValuesField;
 import org.apache.lucene.document.Document;
@@ -61,10 +60,11 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
   public void testBasic() throws Exception {
     final String groupField = "author";
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     DocValuesType valueType = DocValuesType.SORTED;
 
     // 0
@@ -137,34 +137,45 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     int maxDoc = reader.maxDoc();
 
     Sort sortWithinGroup = new Sort(new SortField("id_1", SortField.Type.INT, true));
-    AllGroupHeadsCollector<?> allGroupHeadsCollector = createRandomCollector(groupField, sortWithinGroup);
+    AllGroupHeadsCollector<?> allGroupHeadsCollector =
+        createRandomCollector(groupField, sortWithinGroup);
     indexSearcher.search(new TermQuery(new Term("content", "random")), allGroupHeadsCollector);
-    assertTrue(arrayContains(new int[]{2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads()));
-    assertTrue(openBitSetContains(new int[]{2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
+    assertTrue(arrayContains(new int[] {2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads()));
+    assertTrue(
+        openBitSetContains(
+            new int[] {2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
 
     allGroupHeadsCollector = createRandomCollector(groupField, sortWithinGroup);
     indexSearcher.search(new TermQuery(new Term("content", "some")), allGroupHeadsCollector);
-    assertTrue(arrayContains(new int[]{2, 3, 4}, allGroupHeadsCollector.retrieveGroupHeads()));
-    assertTrue(openBitSetContains(new int[]{2, 3, 4}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
+    assertTrue(arrayContains(new int[] {2, 3, 4}, allGroupHeadsCollector.retrieveGroupHeads()));
+    assertTrue(
+        openBitSetContains(
+            new int[] {2, 3, 4}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
 
     allGroupHeadsCollector = createRandomCollector(groupField, sortWithinGroup);
     indexSearcher.search(new TermQuery(new Term("content", "blob")), allGroupHeadsCollector);
-    assertTrue(arrayContains(new int[]{1, 5}, allGroupHeadsCollector.retrieveGroupHeads()));
-    assertTrue(openBitSetContains(new int[]{1, 5}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
+    assertTrue(arrayContains(new int[] {1, 5}, allGroupHeadsCollector.retrieveGroupHeads()));
+    assertTrue(
+        openBitSetContains(
+            new int[] {1, 5}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
 
     // STRING sort type triggers different implementation
     Sort sortWithinGroup2 = new Sort(new SortField("id_2", SortField.Type.STRING, true));
     allGroupHeadsCollector = createRandomCollector(groupField, sortWithinGroup2);
     indexSearcher.search(new TermQuery(new Term("content", "random")), allGroupHeadsCollector);
-    assertTrue(arrayContains(new int[]{2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads()));
-    assertTrue(openBitSetContains(new int[]{2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
+    assertTrue(arrayContains(new int[] {2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads()));
+    assertTrue(
+        openBitSetContains(
+            new int[] {2, 3, 5, 7}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
 
     Sort sortWithinGroup3 = new Sort(new SortField("id_2", SortField.Type.STRING, false));
     allGroupHeadsCollector = createRandomCollector(groupField, sortWithinGroup3);
     indexSearcher.search(new TermQuery(new Term("content", "random")), allGroupHeadsCollector);
     // 7 b/c higher doc id wins, even if order of field is in not in reverse.
-    assertTrue(arrayContains(new int[]{0, 3, 4, 6}, allGroupHeadsCollector.retrieveGroupHeads()));
-    assertTrue(openBitSetContains(new int[]{0, 3, 4, 6}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
+    assertTrue(arrayContains(new int[] {0, 3, 4, 6}, allGroupHeadsCollector.retrieveGroupHeads()));
+    assertTrue(
+        openBitSetContains(
+            new int[] {0, 3, 4, 6}, allGroupHeadsCollector.retrieveGroupHeads(maxDoc), maxDoc));
 
     indexSearcher.getIndexReader().close();
     dir.close();
@@ -174,7 +185,8 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     int numberOfRuns = atLeast(1);
     for (int iter = 0; iter < numberOfRuns; iter++) {
       if (VERBOSE) {
-        System.out.println(String.format(Locale.ROOT, "TEST: iter=%d total=%d", iter, numberOfRuns));
+        System.out.println(
+            String.format(Locale.ROOT, "TEST: iter=%d total=%d", iter, numberOfRuns));
       }
 
       final int numDocs = TestUtil.nextInt(random(), 100, 1000) * RANDOM_MULTIPLIER;
@@ -188,10 +200,11 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
       for (int i = 0; i < numGroups; i++) {
         String randomValue;
         do {
-          // B/c of DV based impl we can't see the difference between an empty string and a null value.
+          // B/c of DV based impl we can't see the difference between an empty string and a null
+          // value.
           // For that reason we don't generate empty string groups.
           randomValue = TestUtil.randomRealisticUnicodeString(random());
-          //randomValue = TestUtil.randomSimpleString(random());
+          // randomValue = TestUtil.randomSimpleString(random());
         } while ("".equals(randomValue));
         groups.add(new BytesRef(randomValue));
       }
@@ -213,10 +226,8 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
       }
 
       Directory dir = newDirectory();
-      RandomIndexWriter w = new RandomIndexWriter(
-          random(),
-          dir,
-          newIndexWriterConfig(new MockAnalyzer(random())));
+      RandomIndexWriter w =
+          new RandomIndexWriter(random(), dir, newIndexWriterConfig(new MockAnalyzer(random())));
       DocValuesType valueType = DocValuesType.SORTED;
 
       Document doc = new Document();
@@ -250,17 +261,29 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
           groupValue = groups.get(random().nextInt(groups.size()));
         }
 
-        final GroupDoc groupDoc = new GroupDoc(
-            i,
-            groupValue,
-            groups.get(random().nextInt(groups.size())),
-            groups.get(random().nextInt(groups.size())),
-            new BytesRef(String.format(Locale.ROOT, "%05d", i)),
-            contentStrings[random().nextInt(contentStrings.length)]
-        );
+        final GroupDoc groupDoc =
+            new GroupDoc(
+                i,
+                groupValue,
+                groups.get(random().nextInt(groups.size())),
+                groups.get(random().nextInt(groups.size())),
+                new BytesRef(String.format(Locale.ROOT, "%05d", i)),
+                contentStrings[random().nextInt(contentStrings.length)]);
 
         if (VERBOSE) {
-          System.out.println("  doc content=" + groupDoc.content + " id=" + i + " group=" + (groupDoc.group == null ? "null" : groupDoc.group.utf8ToString()) + " sort1=" + groupDoc.sort1.utf8ToString() + " sort2=" + groupDoc.sort2.utf8ToString() + " sort3=" + groupDoc.sort3.utf8ToString());
+          System.out.println(
+              "  doc content="
+                  + groupDoc.content
+                  + " id="
+                  + i
+                  + " group="
+                  + (groupDoc.group == null ? "null" : groupDoc.group.utf8ToString())
+                  + " sort1="
+                  + groupDoc.sort1.utf8ToString()
+                  + " sort2="
+                  + groupDoc.sort2.utf8ToString()
+                  + " sort3="
+                  + groupDoc.sort3.utf8ToString());
         }
 
         groupDocs[i] = groupDoc;
@@ -296,7 +319,8 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
 
       Set<Integer> seenIDs = new HashSet<>();
       for (int contentID = 0; contentID < 3; contentID++) {
-        final ScoreDoc[] hits = s.search(new TermQuery(new Term("content", "real" + contentID)), numDocs).scoreDocs;
+        final ScoreDoc[] hits =
+            s.search(new TermQuery(new Term("content", "real" + contentID)), numDocs).scoreDocs;
         for (ScoreDoc hit : hits) {
           int idValue = docIDToFieldId[hit.doc];
           final GroupDoc gd = groupDocs[idValue];
@@ -315,19 +339,22 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
         assertTrue(Float.isFinite(gd.score));
         assertTrue(gd.score >= 0.0);
       }
-      
+
       for (int searchIter = 0; searchIter < 100; searchIter++) {
-        
+
         if (VERBOSE) {
           System.out.println("TEST: searchIter=" + searchIter);
         }
-        
+
         final String searchTerm = "real" + random().nextInt(3);
         boolean sortByScoreOnly = random().nextBoolean();
         Sort sortWithinGroup = getRandomSort(sortByScoreOnly);
-        AllGroupHeadsCollector<?> allGroupHeadsCollector = createRandomCollector("group", sortWithinGroup);
+        AllGroupHeadsCollector<?> allGroupHeadsCollector =
+            createRandomCollector("group", sortWithinGroup);
         s.search(new TermQuery(new Term("content", searchTerm)), allGroupHeadsCollector);
-        int[] expectedGroupHeads = createExpectedGroupHeads(searchTerm, groupDocs, sortWithinGroup, sortByScoreOnly, fieldIdToDocID);
+        int[] expectedGroupHeads =
+            createExpectedGroupHeads(
+                searchTerm, groupDocs, sortWithinGroup, sortByScoreOnly, fieldIdToDocID);
         int[] actualGroupHeads = allGroupHeadsCollector.retrieveGroupHeads();
         // The actual group heads contains Lucene ids. Need to change them into our id value.
         for (int i = 0; i < actualGroupHeads.length; i++) {
@@ -336,7 +363,7 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
         // Allows us the easily iterate and assert the actual and expected results.
         Arrays.sort(expectedGroupHeads);
         Arrays.sort(actualGroupHeads);
-        
+
         if (VERBOSE) {
           System.out.println("Collector: " + allGroupHeadsCollector.getClass().getSimpleName());
           System.out.println("Sort within group: " + sortWithinGroup);
@@ -345,41 +372,50 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
           System.out.println("\n=== Expected: \n");
           for (int expectedDocId : expectedGroupHeads) {
             GroupDoc expectedGroupDoc = groupDocs[expectedDocId];
-            String expectedGroup = expectedGroupDoc.group == null ? null : expectedGroupDoc.group.utf8ToString();
+            String expectedGroup =
+                expectedGroupDoc.group == null ? null : expectedGroupDoc.group.utf8ToString();
             System.out.println(
-                String.format(Locale.ROOT,
+                String.format(
+                    Locale.ROOT,
                     "Group:%10s score%5f Sort1:%10s Sort2:%10s Sort3:%10s doc:%5d",
-                    expectedGroup, expectedGroupDoc.score, expectedGroupDoc.sort1.utf8ToString(),
-                    expectedGroupDoc.sort2.utf8ToString(), expectedGroupDoc.sort3.utf8ToString(), expectedDocId
-                    )
-                );
+                    expectedGroup,
+                    expectedGroupDoc.score,
+                    expectedGroupDoc.sort1.utf8ToString(),
+                    expectedGroupDoc.sort2.utf8ToString(),
+                    expectedGroupDoc.sort3.utf8ToString(),
+                    expectedDocId));
           }
           System.out.println("\n=== Actual: \n");
           for (int actualDocId : actualGroupHeads) {
             GroupDoc actualGroupDoc = groupDocs[actualDocId];
-            String actualGroup = actualGroupDoc.group == null ? null : actualGroupDoc.group.utf8ToString();
+            String actualGroup =
+                actualGroupDoc.group == null ? null : actualGroupDoc.group.utf8ToString();
             System.out.println(
-                String.format(Locale.ROOT,
+                String.format(
+                    Locale.ROOT,
                     "Group:%10s score%5f Sort1:%10s Sort2:%10s Sort3:%10s doc:%5d",
-                    actualGroup, actualGroupDoc.score, actualGroupDoc.sort1.utf8ToString(),
-                    actualGroupDoc.sort2.utf8ToString(), actualGroupDoc.sort3.utf8ToString(), actualDocId
-                    )
-                );
+                    actualGroup,
+                    actualGroupDoc.score,
+                    actualGroupDoc.sort1.utf8ToString(),
+                    actualGroupDoc.sort2.utf8ToString(),
+                    actualGroupDoc.sort3.utf8ToString(),
+                    actualDocId));
           }
-          System.out.println("\n===================================================================================");
+          System.out.println(
+              "\n===================================================================================");
         }
-        
+
         assertArrayEquals(expectedGroupHeads, actualGroupHeads);
       }
-      
+
       r.close();
       dir.close();
     }
   }
 
-
   private boolean arrayContains(int[] expected, int[] actual) {
-    Arrays.sort(actual); // in some cases the actual docs aren't sorted by docid. This method expects that.
+    // in some cases the actual docs aren't sorted by docid. This method expects that.
+    Arrays.sort(actual);
     if (expected.length != actual.length) {
       return false;
     }
@@ -401,9 +437,10 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     return true;
   }
 
-  private boolean openBitSetContains(int[] expectedDocs, Bits actual, int maxDoc) throws IOException {
+  private boolean openBitSetContains(int[] expectedDocs, Bits actual, int maxDoc)
+      throws IOException {
     assert actual instanceof FixedBitSet;
-    if (expectedDocs.length != ((FixedBitSet)actual).cardinality()) {
+    if (expectedDocs.length != ((FixedBitSet) actual).cardinality()) {
       return false;
     }
 
@@ -412,7 +449,12 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
       expected.set(expectedDoc);
     }
 
-    for (int docId = expected.nextSetBit(0); docId != DocIdSetIterator.NO_MORE_DOCS; docId = docId + 1 >= expected.length() ? DocIdSetIterator.NO_MORE_DOCS : expected.nextSetBit(docId + 1)) {
+    for (int docId = expected.nextSetBit(0);
+        docId != DocIdSetIterator.NO_MORE_DOCS;
+        docId =
+            docId + 1 >= expected.length()
+                ? DocIdSetIterator.NO_MORE_DOCS
+                : expected.nextSetBit(docId + 1)) {
       if (!actual.get(docId)) {
         return false;
       }
@@ -421,7 +463,12 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     return true;
   }
 
-  private int[] createExpectedGroupHeads(String searchTerm, GroupDoc[] groupDocs, Sort docSort, boolean sortByScoreOnly, int[] fieldIdToDocID) {
+  private int[] createExpectedGroupHeads(
+      String searchTerm,
+      GroupDoc[] groupDocs,
+      Sort docSort,
+      boolean sortByScoreOnly,
+      int[] fieldIdToDocID) {
     Map<BytesRef, List<GroupDoc>> groupHeads = new HashMap<>();
     for (GroupDoc groupDoc : groupDocs) {
       if (!groupDoc.content.startsWith(searchTerm)) {
@@ -473,7 +520,8 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     return new Sort(sortFields.toArray(new SortField[sortFields.size()]));
   }
 
-  private Comparator<GroupDoc> getComparator(Sort sort, final boolean sortByScoreOnly, final int[] fieldIdToDocID) {
+  private Comparator<GroupDoc> getComparator(
+      Sort sort, final boolean sortByScoreOnly, final int[] fieldIdToDocID) {
     final SortField[] sortFields = sort.getSort();
     return new Comparator<GroupDoc>() {
       @Override
@@ -509,19 +557,22 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     };
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private AllGroupHeadsCollector<?> createRandomCollector(String groupField, Sort sortWithinGroup) {
     if (random().nextBoolean()) {
       ValueSource vs = new BytesRefFieldSource(groupField);
-      return AllGroupHeadsCollector.newCollector(new ValueSourceGroupSelector(vs, new HashMap<>()), sortWithinGroup);
+      return AllGroupHeadsCollector.newCollector(
+          new ValueSourceGroupSelector(vs, new HashMap<>()), sortWithinGroup);
     } else {
-      return AllGroupHeadsCollector.newCollector(new TermGroupSelector(groupField), sortWithinGroup);
+      return AllGroupHeadsCollector.newCollector(
+          new TermGroupSelector(groupField), sortWithinGroup);
     }
   }
 
-  private void addGroupField(Document doc, String groupField, String value, DocValuesType valueType) {
+  private void addGroupField(
+      Document doc, String groupField, String value, DocValuesType valueType) {
     Field valuesField = null;
-    switch(valueType) {
+    switch (valueType) {
       case BINARY:
         valuesField = new BinaryDocValuesField(groupField, new BytesRef(value));
         break;
@@ -544,7 +595,8 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
     final String content;
     float score;
 
-    public GroupDoc(int id, BytesRef group, BytesRef sort1, BytesRef sort2, BytesRef sort3, String content) {
+    public GroupDoc(
+        int id, BytesRef group, BytesRef sort1, BytesRef sort2, BytesRef sort3, String content) {
       this.id = id;
       this.group = group;
       this.sort1 = sort1;
@@ -552,7 +604,5 @@ public class TestAllGroupHeadsCollector extends LuceneTestCase {
       this.sort3 = sort3;
       this.content = content;
     }
-
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupsCollector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupsCollector.java
index ccdf3c3..73e7dc0 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupsCollector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestAllGroupsCollector.java
@@ -17,7 +17,6 @@
 package org.apache.lucene.search.grouping;
 
 import java.util.HashMap;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -43,10 +42,11 @@ public class TestAllGroupsCollector extends LuceneTestCase {
     customType.setStored(true);
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
 
     // 0
     Document doc = new Document();
@@ -124,11 +124,9 @@ public class TestAllGroupsCollector extends LuceneTestCase {
   private AllGroupsCollector<?> createRandomCollector(String groupField) {
     if (random().nextBoolean()) {
       return new AllGroupsCollector<>(new TermGroupSelector(groupField));
-    }
-    else {
+    } else {
       ValueSource vs = new BytesRefFieldSource(groupField);
       return new AllGroupsCollector<>(new ValueSourceGroupSelector(vs, new HashMap<>()));
     }
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestBlockGrouping.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestBlockGrouping.java
index 78acbbf..e70ed27 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestBlockGrouping.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestBlockGrouping.java
@@ -20,7 +20,6 @@ package org.apache.lucene.search.grouping;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.NumericDocValuesField;
@@ -65,16 +64,16 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
       String bookName = searcher.doc(tg.groups[i].scoreDocs[0].doc).get("book");
       // The contents of each group should be equal to the results of a search for
       // that group alone
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10);
       assertScoreDocsEquals(td.scoreDocs, tg.groups[i].scoreDocs);
     }
 
     shard.close();
-
   }
 
   public void testTopLevelSort() throws IOException {
@@ -88,7 +87,8 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     Query blockEndQuery = new TermQuery(new Term("blockEnd", "true"));
     GroupingSearch grouper = new GroupingSearch(blockEndQuery);
     grouper.setGroupDocsLimit(10);
-    grouper.setGroupSort(sort);     // groups returned sorted by length, chapters within group sorted by relevancy
+    // groups returned sorted by length, chapters within group sorted by relevancy
+    grouper.setGroupSort(sort);
 
     Query topLevel = new TermQuery(new Term("text", "grandmother"));
     TopGroups<?> tg = grouper.search(searcher, topLevel, 0, 5);
@@ -96,16 +96,17 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     // The sort value of the top doc in the top group should be the same as the sort value
     // of the top result from the same search done with no grouping
     TopDocs topDoc = searcher.search(topLevel, 1, sort);
-    assertEquals(((FieldDoc)topDoc.scoreDocs[0]).fields[0], tg.groups[0].groupSortValues[0]);
+    assertEquals(((FieldDoc) topDoc.scoreDocs[0]).fields[0], tg.groups[0].groupSortValues[0]);
 
     for (int i = 0; i < tg.groups.length; i++) {
       String bookName = searcher.doc(tg.groups[i].scoreDocs[0].doc).get("book");
       // The contents of each group should be equal to the results of a search for
       // that group alone, sorted by score
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10);
       assertScoreDocsEquals(td.scoreDocs, tg.groups[i].scoreDocs);
       if (i > 1) {
@@ -114,7 +115,6 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     }
 
     shard.close();
-
   }
 
   public void testWithinGroupSort() throws IOException {
@@ -128,7 +128,8 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     Query blockEndQuery = new TermQuery(new Term("blockEnd", "true"));
     GroupingSearch grouper = new GroupingSearch(blockEndQuery);
     grouper.setGroupDocsLimit(10);
-    grouper.setSortWithinGroup(sort);     // groups returned sorted by relevancy, chapters within group sorted by length
+    // groups returned sorted by relevancy, chapters within group sorted by length
+    grouper.setSortWithinGroup(sort);
 
     Query topLevel = new TermQuery(new Term("text", "grandmother"));
     TopGroups<?> tg = grouper.search(searcher, topLevel, 0, 5);
@@ -136,16 +137,17 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     // We're sorting by score, so the score of the top group should be the same as the
     // score of the top document from the same query with no grouping
     TopDocs topDoc = searcher.search(topLevel, 1);
-    assertEquals(topDoc.scoreDocs[0].score, (float)tg.groups[0].groupSortValues[0], 0);
+    assertEquals(topDoc.scoreDocs[0].score, (float) tg.groups[0].groupSortValues[0], 0);
 
     for (int i = 0; i < tg.groups.length; i++) {
       String bookName = searcher.doc(tg.groups[i].scoreDocs[0].doc).get("book");
       // The contents of each group should be equal to the results of a search for
       // that group alone, sorted by length
-      Query filtered = new BooleanQuery.Builder()
-          .add(topLevel, BooleanClause.Occur.MUST)
-          .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
-          .build();
+      Query filtered =
+          new BooleanQuery.Builder()
+              .add(topLevel, BooleanClause.Occur.MUST)
+              .add(new TermQuery(new Term("book", bookName)), BooleanClause.Occur.FILTER)
+              .build();
       TopDocs td = searcher.search(filtered, 10, sort);
       assertFieldDocsEquals(td.scoreDocs, tg.groups[i].scoreDocs);
       // We're sorting by score, so the group sort value for each group should be a float,
@@ -188,14 +190,15 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
     return block;
   }
 
-  private static final String[] TEXT = new String[]{
-      "It was the day my grandmother exploded",
-      "It was the best of times, it was the worst of times",
-      "It was a bright cold morning in April",
-      "It is a truth universally acknowledged",
-      "I have just returned from a visit to my landlord",
-      "I've been here and I've been there"
-  };
+  private static final String[] TEXT =
+      new String[] {
+        "It was the day my grandmother exploded",
+        "It was the best of times, it was the worst of times",
+        "It was a bright cold morning in April",
+        "It is a truth universally acknowledged",
+        "I have just returned from a visit to my landlord",
+        "I've been here and I've been there"
+      };
 
   private static String randomText() {
     StringBuilder sb = new StringBuilder(TEXT[random().nextInt(TEXT.length)]);
@@ -209,7 +212,7 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
   private void assertSortsBefore(GroupDocs<?> first, GroupDocs<?> second) {
     Object[] groupSortValues = second.groupSortValues;
     Object[] prevSortValues = first.groupSortValues;
-    assertTrue(((Long)prevSortValues[0]).compareTo((Long)groupSortValues[0]) <= 0);
+    assertTrue(((Long) prevSortValues[0]).compareTo((Long) groupSortValues[0]) <= 0);
   }
 
   protected static void assertFieldDocsEquals(ScoreDoc[] expected, ScoreDoc[] actual) {
@@ -221,5 +224,4 @@ public class TestBlockGrouping extends AbstractGroupingTestCase {
       assertArrayEquals(e.fields, a.fields);
     }
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
index cedbeea..8ec8e88 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDistinctValuesCollector.java
@@ -29,7 +29,6 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Random;
 import java.util.Set;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -51,18 +50,19 @@ import org.apache.lucene.util.mutable.MutableValueStr;
 
 public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
 
-  private final static NullComparator nullComparator = new NullComparator();
-  
+  private static final NullComparator nullComparator = new NullComparator();
+
   private static final String GROUP_FIELD = "author";
   private static final String COUNT_FIELD = "publisher";
 
   public void testSimple() throws Exception {
     Random random = random();
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random,
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random,
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
     addField(doc, GROUP_FIELD, "1");
     addField(doc, COUNT_FIELD, "1");
@@ -120,27 +120,30 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     IndexSearcher indexSearcher = newSearcher(w.getReader());
     w.close();
 
-    Comparator<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> cmp = (groupCount1, groupCount2) -> {
-      if (groupCount1.groupValue == null) {
-        if (groupCount2.groupValue == null) {
-          return 0;
-        }
-        return -1;
-      } else if (groupCount2.groupValue == null) {
-        return 1;
-      } else {
-        return groupCount1.groupValue.compareTo(groupCount2.groupValue);
-      }
-    };
+    Comparator<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> cmp =
+        (groupCount1, groupCount2) -> {
+          if (groupCount1.groupValue == null) {
+            if (groupCount2.groupValue == null) {
+              return 0;
+            }
+            return -1;
+          } else if (groupCount2.groupValue == null) {
+            return 1;
+          } else {
+            return groupCount1.groupValue.compareTo(groupCount2.groupValue);
+          }
+        };
 
     // === Search for content:random
-    FirstPassGroupingCollector<Comparable<Object>> firstCollector = createRandomFirstPassCollector(new Sort(), GROUP_FIELD, 10);
+    FirstPassGroupingCollector<Comparable<Object>> firstCollector =
+        createRandomFirstPassCollector(new Sort(), GROUP_FIELD, 10);
     indexSearcher.search(new TermQuery(new Term("content", "random")), firstCollector);
-    DistinctValuesCollector<Comparable<Object>, Comparable<Object>> distinctValuesCollector
-        = createDistinctCountCollector(firstCollector, COUNT_FIELD);
+    DistinctValuesCollector<Comparable<Object>, Comparable<Object>> distinctValuesCollector =
+        createDistinctCountCollector(firstCollector, COUNT_FIELD);
     indexSearcher.search(new TermQuery(new Term("content", "random")), distinctValuesCollector);
 
-    List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> gcs = distinctValuesCollector.getGroups();
+    List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> gcs =
+        distinctValuesCollector.getGroups();
     Collections.sort(gcs, cmp);
     assertEquals(4, gcs.size());
 
@@ -193,7 +196,7 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     assertEquals(1, countValues.size());
     compare("1", countValues.get(0));
 
-     // === Search for content:blob
+    // === Search for content:blob
     firstCollector = createRandomFirstPassCollector(new Sort(), GROUP_FIELD, 10);
     indexSearcher.search(new TermQuery(new Term("content", "blob")), firstCollector);
     distinctValuesCollector = createDistinctCountCollector(firstCollector, COUNT_FIELD);
@@ -229,33 +232,40 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
         Sort groupSort = new Sort(new SortField("id", SortField.Type.STRING));
         int topN = 1 + random.nextInt(10);
 
-        List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> expectedResult = createExpectedResult(context, term, groupSort, topN);
+        List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>>
+            expectedResult = createExpectedResult(context, term, groupSort, topN);
 
-        FirstPassGroupingCollector<Comparable<Object>> firstCollector = createRandomFirstPassCollector(groupSort, GROUP_FIELD, topN);
+        FirstPassGroupingCollector<Comparable<Object>> firstCollector =
+            createRandomFirstPassCollector(groupSort, GROUP_FIELD, topN);
         searcher.search(new TermQuery(new Term("content", term)), firstCollector);
-        DistinctValuesCollector<Comparable<Object>, Comparable<Object>> distinctValuesCollector
-            = createDistinctCountCollector(firstCollector, COUNT_FIELD);
+        DistinctValuesCollector<Comparable<Object>, Comparable<Object>> distinctValuesCollector =
+            createDistinctCountCollector(firstCollector, COUNT_FIELD);
         searcher.search(new TermQuery(new Term("content", term)), distinctValuesCollector);
         @SuppressWarnings("unchecked")
-        List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> actualResult = distinctValuesCollector.getGroups();
+        List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>>
+            actualResult = distinctValuesCollector.getGroups();
 
         if (VERBOSE) {
           System.out.println("Index iter=" + indexIter);
           System.out.println("Search iter=" + searchIter);
-          System.out.println("1st pass collector class name=" + firstCollector.getClass().getName());
-          System.out.println("2nd pass collector class name=" + distinctValuesCollector.getClass().getName());
+          System.out.println(
+              "1st pass collector class name=" + firstCollector.getClass().getName());
+          System.out.println(
+              "2nd pass collector class name=" + distinctValuesCollector.getClass().getName());
           System.out.println("Search term=" + term);
           System.out.println("1st pass groups=" + firstCollector.getTopGroups(0));
-          System.out.println("Expected:");      
+          System.out.println("Expected:");
           printGroups(expectedResult);
-          System.out.println("Actual:");      
+          System.out.println("Actual:");
           printGroups(actualResult);
         }
 
         assertEquals(expectedResult.size(), actualResult.size());
         for (int i = 0; i < expectedResult.size(); i++) {
-          DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> expected = expectedResult.get(i);
-          DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> actual = actualResult.get(i);
+          DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> expected =
+              expectedResult.get(i);
+          DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> actual =
+              actualResult.get(i);
           assertValues(expected.groupValue, actual.groupValue);
           assertEquals(expected.uniqueValues.size(), actual.uniqueValues.size());
           List<Comparable<?>> expectedUniqueValues = new ArrayList<>(expected.uniqueValues);
@@ -272,16 +282,18 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     }
   }
 
-  private void printGroups(List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> results) {
-    for(int i=0;i<results.size();i++) {
-      DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> group = results.get(i);
+  private void printGroups(
+      List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> results) {
+    for (int i = 0; i < results.size(); i++) {
+      DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>> group =
+          results.get(i);
       Object gv = group.groupValue;
       if (gv instanceof BytesRef) {
         System.out.println(i + ": groupValue=" + ((BytesRef) gv).utf8ToString());
       } else {
         System.out.println(i + ": groupValue=" + gv);
       }
-      for(Object o : group.uniqueValues) {
+      for (Object o : group.uniqueValues) {
         if (o instanceof BytesRef) {
           System.out.println("  " + ((BytesRef) o).utf8ToString());
         } else {
@@ -298,7 +310,7 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
       compare(((BytesRef) expected).utf8ToString(), actual);
     }
   }
-  
+
   private void compare(String expected, Object groupValue) {
     if (BytesRef.class.isAssignableFrom(groupValue.getClass())) {
       assertEquals(expected, ((BytesRef) groupValue).utf8ToString());
@@ -338,13 +350,16 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     doc.add(new SortedDocValuesField(field, new BytesRef(value)));
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
-  private <T extends Comparable<Object>, R extends Comparable<Object>> DistinctValuesCollector<T, R> createDistinctCountCollector(FirstPassGroupingCollector<T> firstPassGroupingCollector,
-                                                                                         String countField) throws IOException {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  private <T extends Comparable<Object>, R extends Comparable<Object>>
+      DistinctValuesCollector<T, R> createDistinctCountCollector(
+          FirstPassGroupingCollector<T> firstPassGroupingCollector, String countField)
+          throws IOException {
     Collection<SearchGroup<T>> searchGroups = firstPassGroupingCollector.getTopGroups(0);
     GroupSelector<T> selector = firstPassGroupingCollector.getGroupSelector();
     if (ValueSourceGroupSelector.class.isAssignableFrom(selector.getClass())) {
-      GroupSelector gs = new ValueSourceGroupSelector(new BytesRefFieldSource(countField), new HashMap<>());
+      GroupSelector gs =
+          new ValueSourceGroupSelector(new BytesRefFieldSource(countField), new HashMap<>());
       return new DistinctValuesCollector<>(selector, searchGroups, gs);
     } else {
       GroupSelector ts = new TermGroupSelector(countField);
@@ -352,18 +367,26 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     }
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
-  private <T> FirstPassGroupingCollector<T> createRandomFirstPassCollector(Sort groupSort, String groupField, int topNGroups) throws IOException {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  private <T> FirstPassGroupingCollector<T> createRandomFirstPassCollector(
+      Sort groupSort, String groupField, int topNGroups) throws IOException {
     Random random = random();
     if (random.nextBoolean()) {
-      return (FirstPassGroupingCollector<T>) new FirstPassGroupingCollector<>(new ValueSourceGroupSelector(new BytesRefFieldSource(groupField), new HashMap<>()), groupSort, topNGroups);
+      return (FirstPassGroupingCollector<T>)
+          new FirstPassGroupingCollector<>(
+              new ValueSourceGroupSelector(new BytesRefFieldSource(groupField), new HashMap<>()),
+              groupSort,
+              topNGroups);
     } else {
-      return (FirstPassGroupingCollector<T>) new FirstPassGroupingCollector<>(new TermGroupSelector(groupField), groupSort, topNGroups);
+      return (FirstPassGroupingCollector<T>)
+          new FirstPassGroupingCollector<>(
+              new TermGroupSelector(groupField), groupSort, topNGroups);
     }
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
-  private List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>> createExpectedResult(IndexContext context, String term, Sort groupSort, int topN) {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  private List<DistinctValuesCollector.GroupCount<Comparable<Object>, Comparable<Object>>>
+      createExpectedResult(IndexContext context, String term, Sort groupSort, int topN) {
     List result = new ArrayList();
     Map<String, Set<String>> groupCounts = context.searchTermToGroupCounts.get(term);
     int i = 0;
@@ -375,7 +398,9 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
       for (String val : groupCounts.get(group)) {
         uniqueValues.add(val != null ? new BytesRef(val) : null);
       }
-      result.add(new DistinctValuesCollector.GroupCount(group != null ? new BytesRef(group) : null, uniqueValues));
+      result.add(
+          new DistinctValuesCollector.GroupCount(
+              group != null ? new BytesRef(group) : null, uniqueValues));
     }
     return result;
   }
@@ -384,11 +409,11 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     Random random = random();
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random,
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy())
-      );
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random,
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
 
     int numDocs = 86 + random.nextInt(1087) * RANDOM_MULTIPLIER;
     String[] groupValues = new String[numDocs / 5];
@@ -399,12 +424,14 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     for (int i = 0; i < countValues.length; i++) {
       countValues[i] = generateRandomNonEmptyString();
     }
-    
+
     List<String> contentStrings = new ArrayList<>();
     Map<String, Map<String, Set<String>>> searchTermToGroupCounts = new HashMap<>();
     for (int i = 1; i <= numDocs; i++) {
-      String groupValue = random.nextInt(23) == 14 ? null : groupValues[random.nextInt(groupValues.length)];
-      String countValue = random.nextInt(21) == 13 ? null : countValues[random.nextInt(countValues.length)];
+      String groupValue =
+          random.nextInt(23) == 14 ? null : groupValues[random.nextInt(groupValues.length)];
+      String countValue =
+          random.nextInt(21) == 13 ? null : countValues[random.nextInt(countValues.length)];
       String content = "random" + random.nextInt(numDocs / 20);
       Map<String, Set<String>> groupToCounts = searchTermToGroupCounts.get(content);
       if (groupToCounts == null) {
@@ -434,14 +461,28 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
 
     DirectoryReader reader = w.getReader();
     if (VERBOSE) {
-      for(int docID=0;docID<reader.maxDoc();docID++) {
+      for (int docID = 0; docID < reader.maxDoc(); docID++) {
         Document doc = reader.document(docID);
-        System.out.println("docID=" + docID + " id=" + doc.get("id") + " content=" + doc.get("content") + " author=" + doc.get("author") + " publisher=" + doc.get("publisher"));
+        System.out.println(
+            "docID="
+                + docID
+                + " id="
+                + doc.get("id")
+                + " content="
+                + doc.get("content")
+                + " author="
+                + doc.get("author")
+                + " publisher="
+                + doc.get("publisher"));
       }
     }
 
     w.close();
-    return new IndexContext(dir, reader, searchTermToGroupCounts, contentStrings.toArray(new String[contentStrings.size()]));
+    return new IndexContext(
+        dir,
+        reader,
+        searchTermToGroupCounts,
+        contentStrings.toArray(new String[contentStrings.size()]));
   }
 
   private static class IndexContext {
@@ -451,8 +492,11 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
     final Map<String, Map<String, Set<String>>> searchTermToGroupCounts;
     final String[] contentStrings;
 
-    IndexContext(Directory directory, DirectoryReader indexReader, 
-                 Map<String, Map<String, Set<String>>> searchTermToGroupCounts, String[] contentStrings) {
+    IndexContext(
+        Directory directory,
+        DirectoryReader indexReader,
+        Map<String, Map<String, Set<String>>> searchTermToGroupCounts,
+        String[] contentStrings) {
       this.directory = directory;
       this.indexReader = indexReader;
       this.searchTermToGroupCounts = searchTermToGroupCounts;
@@ -463,7 +507,7 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
   private static class NullComparator implements Comparator<Comparable<?>> {
 
     @Override
-    @SuppressWarnings({"unchecked","rawtypes"})
+    @SuppressWarnings({"unchecked", "rawtypes"})
     public int compare(Comparable a, Comparable b) {
       if (a == b) {
         return 0;
@@ -475,7 +519,5 @@ public class TestDistinctValuesCollector extends AbstractGroupingTestCase {
         return a.compareTo(b);
       }
     }
-
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeFactory.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeFactory.java
index d6e05c3..0e52ef2 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeFactory.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeFactory.java
@@ -33,7 +33,5 @@ public class TestDoubleRangeFactory extends LuceneTestCase {
     assertEquals(new DoubleRange(30, 40), factory.getRange(35, scratch));
     assertEquals(new DoubleRange(50, Double.MAX_VALUE), factory.getRange(50, scratch));
     assertEquals(new DoubleRange(50, Double.MAX_VALUE), factory.getRange(500, scratch));
-
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeGroupSelector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeGroupSelector.java
index 5350a04..ada3c04 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeGroupSelector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestDoubleRangeGroupSelector.java
@@ -32,7 +32,7 @@ public class TestDoubleRangeGroupSelector extends BaseGroupSelectorTestCase<Doub
   @Override
   protected void addGroupField(Document document, int id) {
     if (rarely()) {
-      return;   // missing value
+      return; // missing value
     }
     // numbers between 0 and 1000, groups are 100 wide from 100 to 900
     double value = random().nextDouble() * 1000;
@@ -42,8 +42,8 @@ public class TestDoubleRangeGroupSelector extends BaseGroupSelectorTestCase<Doub
 
   @Override
   protected GroupSelector<DoubleRange> getGroupSelector() {
-    return new DoubleRangeGroupSelector(DoubleValuesSource.fromDoubleField("double"),
-        new DoubleRangeFactory(100, 100, 900));
+    return new DoubleRangeGroupSelector(
+        DoubleValuesSource.fromDoubleField("double"), new DoubleRangeFactory(100, 100, 900));
   }
 
   @Override
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupFacetCollector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupFacetCollector.java
index fffcd69..8060e15 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupFacetCollector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupFacetCollector.java
@@ -29,7 +29,6 @@ import java.util.NavigableSet;
 import java.util.Random;
 import java.util.Set;
 import java.util.TreeSet;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -48,7 +47,6 @@ import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.TestUtil;
 
-
 public class TestGroupFacetCollector extends AbstractGroupingTestCase {
 
   public void testSimple() throws Exception {
@@ -57,10 +55,11 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     customType.setStored(true);
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     boolean useDv = true;
 
     // 0
@@ -104,18 +103,19 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     List<TermGroupFacetCollector.FacetEntry> entries;
     GroupFacetCollector groupedAirportFacetCollector;
     TermGroupFacetCollector.GroupedFacetResult airportResult;
-    
-    for (int limit : new int[] { 2, 10, 100, Integer.MAX_VALUE }) {
+
+    for (int limit : new int[] {2, 10, 100, Integer.MAX_VALUE}) {
       // any of these limits is plenty for the data we have
 
-      groupedAirportFacetCollector = createRandomCollector
-        (useDv ? "hotel_dv" : "hotel", 
-         useDv ? "airport_dv" : "airport", null, false);
+      groupedAirportFacetCollector =
+          createRandomCollector(
+              useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, false);
       indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
       int maxOffset = 5;
-      airportResult = groupedAirportFacetCollector.mergeSegmentResults
-        (Integer.MAX_VALUE == limit ? limit : maxOffset + limit, 0, false);
-      
+      airportResult =
+          groupedAirportFacetCollector.mergeSegmentResults(
+              Integer.MAX_VALUE == limit ? limit : maxOffset + limit, 0, false);
+
       assertEquals(3, airportResult.getTotalCount());
       assertEquals(0, airportResult.getTotalMissingCount());
 
@@ -135,9 +135,12 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       assertEquals(1, entries.get(0).getCount());
     }
 
-    GroupFacetCollector groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
+    GroupFacetCollector groupedDurationFacetCollector =
+        createRandomCollector(
+            useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
-    TermGroupFacetCollector.GroupedFacetResult durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 0, false);
+    TermGroupFacetCollector.GroupedFacetResult durationResult =
+        groupedDurationFacetCollector.mergeSegmentResults(10, 0, false);
     assertEquals(4, durationResult.getTotalCount());
     assertEquals(0, durationResult.getTotalMissingCount());
 
@@ -181,7 +184,9 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
 
     indexSearcher.getIndexReader().close();
     indexSearcher = newSearcher(w.getReader());
-    groupedAirportFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, !useDv);
+    groupedAirportFacetCollector =
+        createRandomCollector(
+            useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, !useDv);
     indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
     airportResult = groupedAirportFacetCollector.mergeSegmentResults(3, 0, true);
     entries = airportResult.getFacetEntries(1, 2);
@@ -202,7 +207,9 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       assertEquals(1, entries.get(1).getCount());
     }
 
-    groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
+    groupedDurationFacetCollector =
+        createRandomCollector(
+            useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
     durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 2, true);
     assertEquals(5, durationResult.getTotalCount());
@@ -229,7 +236,9 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
 
     indexSearcher.getIndexReader().close();
     indexSearcher = newSearcher(w.getReader());
-    groupedAirportFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, false);
+    groupedAirportFacetCollector =
+        createRandomCollector(
+            useDv ? "hotel_dv" : "hotel", useDv ? "airport_dv" : "airport", null, false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
     airportResult = groupedAirportFacetCollector.mergeSegmentResults(10, 0, false);
     entries = airportResult.getFacetEntries(0, 10);
@@ -257,7 +266,9 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       assertEquals(2, entries.get(2).getCount());
     }
 
-    groupedDurationFacetCollector = createRandomCollector(useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", "1", false);
+    groupedDurationFacetCollector =
+        createRandomCollector(
+            useDv ? "hotel_dv" : "hotel", useDv ? "duration_dv" : "duration", "1", false);
     indexSearcher.search(new MatchAllDocsQuery(), groupedDurationFacetCollector);
     durationResult = groupedDurationFacetCollector.mergeSegmentResults(10, 0, true);
     assertEquals(5, durationResult.getTotalCount());
@@ -281,10 +292,12 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     customType.setStored(true);
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(NoMergePolicy.INSTANCE));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random()))
+                .setMergePolicy(NoMergePolicy.INSTANCE));
     boolean useDv = true;
 
     // Cannot assert this since we use NoMergePolicy:
@@ -343,9 +356,11 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
 
     w.close();
     IndexSearcher indexSearcher = newSearcher(DirectoryReader.open(dir));
-    GroupFacetCollector groupedAirportFacetCollector = createRandomCollector(groupField + "_dv", "airport", null, true);
+    GroupFacetCollector groupedAirportFacetCollector =
+        createRandomCollector(groupField + "_dv", "airport", null, true);
     indexSearcher.search(new MatchAllDocsQuery(), groupedAirportFacetCollector);
-    TermGroupFacetCollector.GroupedFacetResult airportResult = groupedAirportFacetCollector.mergeSegmentResults(10, 0, false);
+    TermGroupFacetCollector.GroupedFacetResult airportResult =
+        groupedAirportFacetCollector.mergeSegmentResults(10, 0, false);
     assertEquals(3, airportResult.getTotalCount());
     assertEquals(1, airportResult.getTotalMissingCount());
 
@@ -385,9 +400,11 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
         int limit = random.nextInt(context.facetValues.size());
         int offset = random.nextInt(context.facetValues.size() - limit);
         int size = offset + limit;
-        int minCount = random.nextBoolean() ? 0 : random.nextInt(1 + context.facetWithMostGroups / 10);
+        int minCount =
+            random.nextBoolean() ? 0 : random.nextInt(1 + context.facetWithMostGroups / 10);
         boolean orderByCount = random.nextBoolean();
-        String randomStr = getFromSet(context.facetValues, random.nextInt(context.facetValues.size()));
+        String randomStr =
+            getFromSet(context.facetValues, random.nextInt(context.facetValues.size()));
         final String facetPrefix;
         if (randomStr == null) {
           facetPrefix = null;
@@ -402,13 +419,19 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
           }
         }
 
-        GroupedFacetResult expectedFacetResult = createExpectedFacetResult(searchTerm, context, offset, limit, minCount, orderByCount, facetPrefix);
-        GroupFacetCollector groupFacetCollector = createRandomCollector("group", "facet", facetPrefix, multipleFacetsPerDocument);
+        GroupedFacetResult expectedFacetResult =
+            createExpectedFacetResult(
+                searchTerm, context, offset, limit, minCount, orderByCount, facetPrefix);
+        GroupFacetCollector groupFacetCollector =
+            createRandomCollector("group", "facet", facetPrefix, multipleFacetsPerDocument);
         searcher.search(new TermQuery(new Term("content", searchTerm)), groupFacetCollector);
-        TermGroupFacetCollector.GroupedFacetResult actualFacetResult = groupFacetCollector.mergeSegmentResults(size, minCount, orderByCount);
+        TermGroupFacetCollector.GroupedFacetResult actualFacetResult =
+            groupFacetCollector.mergeSegmentResults(size, minCount, orderByCount);
 
-        List<TermGroupFacetCollector.FacetEntry> expectedFacetEntries = expectedFacetResult.getFacetEntries();
-        List<TermGroupFacetCollector.FacetEntry> actualFacetEntries = actualFacetResult.getFacetEntries(offset, limit);
+        List<TermGroupFacetCollector.FacetEntry> expectedFacetEntries =
+            expectedFacetResult.getFacetEntries();
+        List<TermGroupFacetCollector.FacetEntry> actualFacetEntries =
+            actualFacetResult.getFacetEntries(offset, limit);
 
         if (VERBOSE) {
           System.out.println("Collector: " + groupFacetCollector.getClass().getSimpleName());
@@ -431,11 +454,12 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
           int counter = 0;
           for (TermGroupFacetCollector.FacetEntry expectedFacetEntry : expectedFacetEntries) {
             System.out.println(
-                String.format(Locale.ROOT,
+                String.format(
+                    Locale.ROOT,
                     "%d. Expected facet value %s with count %d",
-                    counter++, expectedFacetEntry.getValue().utf8ToString(), expectedFacetEntry.getCount()
-                )
-            );
+                    counter++,
+                    expectedFacetEntry.getValue().utf8ToString(),
+                    expectedFacetEntry.getCount()));
           }
 
           System.out.println("\n=== Actual: \n");
@@ -444,23 +468,42 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
           counter = 0;
           for (TermGroupFacetCollector.FacetEntry actualFacetEntry : actualFacetEntries) {
             System.out.println(
-                String.format(Locale.ROOT,
+                String.format(
+                    Locale.ROOT,
                     "%d. Actual facet value %s with count %d",
-                    counter++, actualFacetEntry.getValue().utf8ToString(), actualFacetEntry.getCount()
-                )
-            );
+                    counter++,
+                    actualFacetEntry.getValue().utf8ToString(),
+                    actualFacetEntry.getCount()));
           }
-          System.out.println("\n===================================================================================");
+          System.out.println(
+              "\n===================================================================================");
         }
-        
+
         assertEquals(expectedFacetResult.getTotalCount(), actualFacetResult.getTotalCount());
-        assertEquals(expectedFacetResult.getTotalMissingCount(), actualFacetResult.getTotalMissingCount());
+        assertEquals(
+            expectedFacetResult.getTotalMissingCount(), actualFacetResult.getTotalMissingCount());
         assertEquals(expectedFacetEntries.size(), actualFacetEntries.size());
         for (int i = 0; i < expectedFacetEntries.size(); i++) {
           TermGroupFacetCollector.FacetEntry expectedFacetEntry = expectedFacetEntries.get(i);
           TermGroupFacetCollector.FacetEntry actualFacetEntry = actualFacetEntries.get(i);
-          assertEquals("i=" + i + ": " + expectedFacetEntry.getValue().utf8ToString() + " != " + actualFacetEntry.getValue().utf8ToString(), expectedFacetEntry.getValue(), actualFacetEntry.getValue());
-          assertEquals("i=" + i + ": " + expectedFacetEntry.getCount() + " != " + actualFacetEntry.getCount(), expectedFacetEntry.getCount(), actualFacetEntry.getCount());
+          assertEquals(
+              "i="
+                  + i
+                  + ": "
+                  + expectedFacetEntry.getValue().utf8ToString()
+                  + " != "
+                  + actualFacetEntry.getValue().utf8ToString(),
+              expectedFacetEntry.getValue(),
+              actualFacetEntry.getValue());
+          assertEquals(
+              "i="
+                  + i
+                  + ": "
+                  + expectedFacetEntry.getCount()
+                  + " != "
+                  + actualFacetEntry.getCount(),
+              expectedFacetEntry.getCount(),
+              actualFacetEntry.getCount());
         }
       }
 
@@ -469,7 +512,8 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     }
   }
 
-  private IndexContext createIndexContext(boolean multipleFacetValuesPerDocument) throws IOException {
+  private IndexContext createIndexContext(boolean multipleFacetValuesPerDocument)
+      throws IOException {
     final Random random = random();
     final int numDocs = TestUtil.nextInt(random, 138, 1145) * RANDOM_MULTIPLIER;
     final int numGroups = TestUtil.nextInt(random, 1, numDocs / 4);
@@ -499,11 +543,8 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     }
 
     Directory dir = newDirectory();
-    RandomIndexWriter writer = new RandomIndexWriter(
-        random,
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random))
-    );
+    RandomIndexWriter writer =
+        new RandomIndexWriter(random, dir, newIndexWriterConfig(new MockAnalyzer(random)));
     Document doc = new Document();
     Document docNoGroup = new Document();
     Document docNoFacet = new Document();
@@ -524,7 +565,8 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       doc.add(facetFields[1]);
       docNoGroup.add(facetFields[1]);
     } else {
-      facetFields = multipleFacetValuesPerDocument ? new Field[2 + random.nextInt(6)] : new Field[1];
+      facetFields =
+          multipleFacetValuesPerDocument ? new Field[2 + random.nextInt(6)] : new Field[1];
       for (int i = 0; i < facetFields.length; i++) {
         facetFields[i] = new SortedSetDocValuesField("facet", new BytesRef());
         doc.add(facetFields[i]);
@@ -537,22 +579,23 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     docNoFacet.add(content);
     docNoGroupNoFacet.add(content);
 
-    NavigableSet<String> uniqueFacetValues = new TreeSet<>(new Comparator<String>() {
-
-      @Override
-      public int compare(String a, String b) {
-        if (a == b) {
-          return 0;
-        } else if (a == null) {
-          return -1;
-        } else if (b == null) {
-          return 1;
-        } else {
-          return a.compareTo(b);
-        }
-      }
-
-    });
+    NavigableSet<String> uniqueFacetValues =
+        new TreeSet<>(
+            new Comparator<String>() {
+
+              @Override
+              public int compare(String a, String b) {
+                if (a == b) {
+                  return 0;
+                } else if (a == null) {
+                  return -1;
+                } else if (b == null) {
+                  return 1;
+                } else {
+                  return a.compareTo(b);
+                }
+              }
+            });
     Map<String, Map<String, Set<String>>> searchTermToFacetToGroups = new HashMap<>();
     int facetWithMostGroups = 0;
     for (int i = 0; i < numDocs; i++) {
@@ -604,7 +647,13 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       }
 
       if (VERBOSE) {
-        System.out.println("  doc content=" + contentStr + " group=" + (groupValue == null ? "null" : groupValue) + " facetVals=" + facetVals);
+        System.out.println(
+            "  doc content="
+                + contentStr
+                + " group="
+                + (groupValue == null ? "null" : groupValue)
+                + " facetVals="
+                + facetVals);
       }
 
       if (groupValue != null) {
@@ -630,10 +679,25 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     DirectoryReader reader = writer.getReader();
     writer.close();
 
-    return new IndexContext(searchTermToFacetToGroups, reader, numDocs, dir, facetWithMostGroups, numGroups, contentBrs, uniqueFacetValues);
+    return new IndexContext(
+        searchTermToFacetToGroups,
+        reader,
+        numDocs,
+        dir,
+        facetWithMostGroups,
+        numGroups,
+        contentBrs,
+        uniqueFacetValues);
   }
 
-  private GroupedFacetResult createExpectedFacetResult(String searchTerm, IndexContext context, int offset, int limit, int minCount, final boolean orderByCount, String facetPrefix) {
+  private GroupedFacetResult createExpectedFacetResult(
+      String searchTerm,
+      IndexContext context,
+      int offset,
+      int limit,
+      int minCount,
+      final boolean orderByCount,
+      String facetPrefix) {
     Map<String, Set<String>> facetGroups = context.searchTermToFacetGroups.get(searchTerm);
     if (facetGroups == null) {
       facetGroups = new HashMap<>();
@@ -676,20 +740,22 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       }
     }
 
-    Collections.sort(entries, new Comparator<TermGroupFacetCollector.FacetEntry>() {
-
-      @Override
-      public int compare(TermGroupFacetCollector.FacetEntry a, TermGroupFacetCollector.FacetEntry b) {
-        if (orderByCount) {
-          int cmp = b.getCount() - a.getCount();
-          if (cmp != 0) {
-            return cmp;
+    Collections.sort(
+        entries,
+        new Comparator<TermGroupFacetCollector.FacetEntry>() {
+
+          @Override
+          public int compare(
+              TermGroupFacetCollector.FacetEntry a, TermGroupFacetCollector.FacetEntry b) {
+            if (orderByCount) {
+              int cmp = b.getCount() - a.getCount();
+              if (cmp != 0) {
+                return cmp;
+              }
+            }
+            return a.getValue().compareTo(b.getValue());
           }
-        }
-        return a.getValue().compareTo(b.getValue());
-      }
-
-    });
+        });
 
     int endOffset = offset + limit;
     List<TermGroupFacetCollector.FacetEntry> entriesResult;
@@ -703,9 +769,11 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     return new GroupedFacetResult(totalCount, totalMissCount, entriesResult);
   }
 
-  private GroupFacetCollector createRandomCollector(String groupField, String facetField, String facetPrefix, boolean multipleFacetsPerDocument) {
+  private GroupFacetCollector createRandomCollector(
+      String groupField, String facetField, String facetPrefix, boolean multipleFacetsPerDocument) {
     BytesRef facetPrefixBR = facetPrefix == null ? null : new BytesRef(facetPrefix);
-    return TermGroupFacetCollector.createTermGroupFacetCollector(groupField, facetField, multipleFacetsPerDocument, facetPrefixBR, random().nextInt(1024));
+    return TermGroupFacetCollector.createTermGroupFacetCollector(
+        groupField, facetField, multipleFacetsPerDocument, facetPrefixBR, random().nextInt(1024));
   }
 
   private String getFromSet(Set<String> set, int index) {
@@ -730,8 +798,15 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     final int numGroups;
     final String[] contentStrings;
 
-    public IndexContext(Map<String, Map<String, Set<String>>> searchTermToFacetGroups, DirectoryReader r,
-                        int numDocs, Directory dir, int facetWithMostGroups, int numGroups, String[] contentStrings, NavigableSet<String> facetValues) {
+    public IndexContext(
+        Map<String, Map<String, Set<String>>> searchTermToFacetGroups,
+        DirectoryReader r,
+        int numDocs,
+        Directory dir,
+        int facetWithMostGroups,
+        int numGroups,
+        String[] contentStrings,
+        NavigableSet<String> facetValues) {
       this.searchTermToFacetGroups = searchTermToFacetGroups;
       this.indexReader = r;
       this.numDocs = numDocs;
@@ -749,7 +824,10 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
     final int totalMissingCount;
     final List<TermGroupFacetCollector.FacetEntry> facetEntries;
 
-    private GroupedFacetResult(int totalCount, int totalMissingCount, List<TermGroupFacetCollector.FacetEntry> facetEntries) {
+    private GroupedFacetResult(
+        int totalCount,
+        int totalMissingCount,
+        List<TermGroupFacetCollector.FacetEntry> facetEntries) {
       this.totalCount = totalCount;
       this.totalMissingCount = totalMissingCount;
       this.facetEntries = facetEntries;
@@ -767,5 +845,4 @@ public class TestGroupFacetCollector extends AbstractGroupingTestCase {
       return facetEntries;
     }
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
index 4ef6c02..df53dff 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGrouping.java
@@ -27,7 +27,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -84,10 +83,11 @@ public class TestGrouping extends LuceneTestCase {
     customType.setStored(true);
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-                               random(),
-                               dir,
-                               newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     // 0
     Document doc = new Document();
     addGroupField(doc, groupField, "author1");
@@ -143,10 +143,12 @@ public class TestGrouping extends LuceneTestCase {
 
     final Sort groupSort = Sort.RELEVANCE;
 
-    final FirstPassGroupingCollector<?> c1 = createRandomFirstPassCollector(groupField, groupSort, 10);
+    final FirstPassGroupingCollector<?> c1 =
+        createRandomFirstPassCollector(groupField, groupSort, 10);
     indexSearcher.search(new TermQuery(new Term("content", "random")), c1);
 
-    final TopGroupsCollector<?> c2 = createSecondPassCollector(c1, groupSort, Sort.RELEVANCE, 0, 5, true);
+    final TopGroupsCollector<?> c2 =
+        createSecondPassCollector(c1, groupSort, Sort.RELEVANCE, 0, 5, true);
     indexSearcher.search(new TermQuery(new Term("content", "random")), c2);
 
     final TopGroups<?> groups = c2.getTopGroups(0);
@@ -194,49 +196,74 @@ public class TestGrouping extends LuceneTestCase {
     doc.add(new SortedDocValuesField(groupField, new BytesRef(value)));
   }
 
-  private FirstPassGroupingCollector<?> createRandomFirstPassCollector(String groupField, Sort groupSort, int topDocs) throws IOException {
+  private FirstPassGroupingCollector<?> createRandomFirstPassCollector(
+      String groupField, Sort groupSort, int topDocs) throws IOException {
     if (random().nextBoolean()) {
       ValueSource vs = new BytesRefFieldSource(groupField);
-      return new FirstPassGroupingCollector<>(new ValueSourceGroupSelector(vs, new HashMap<>()), groupSort, topDocs);
+      return new FirstPassGroupingCollector<>(
+          new ValueSourceGroupSelector(vs, new HashMap<>()), groupSort, topDocs);
     } else {
-      return new FirstPassGroupingCollector<>(new TermGroupSelector(groupField), groupSort, topDocs);
+      return new FirstPassGroupingCollector<>(
+          new TermGroupSelector(groupField), groupSort, topDocs);
     }
   }
 
-  private FirstPassGroupingCollector<?> createFirstPassCollector(String groupField, Sort groupSort, int topDocs, FirstPassGroupingCollector<?> firstPassGroupingCollector) throws IOException {
+  private FirstPassGroupingCollector<?> createFirstPassCollector(
+      String groupField,
+      Sort groupSort,
+      int topDocs,
+      FirstPassGroupingCollector<?> firstPassGroupingCollector)
+      throws IOException {
     GroupSelector<?> selector = firstPassGroupingCollector.getGroupSelector();
     if (TermGroupSelector.class.isAssignableFrom(selector.getClass())) {
       ValueSource vs = new BytesRefFieldSource(groupField);
-      return new FirstPassGroupingCollector<>(new ValueSourceGroupSelector(vs, new HashMap<>()), groupSort, topDocs);
+      return new FirstPassGroupingCollector<>(
+          new ValueSourceGroupSelector(vs, new HashMap<>()), groupSort, topDocs);
     } else {
-      return new FirstPassGroupingCollector<>(new TermGroupSelector(groupField), groupSort, topDocs);
+      return new FirstPassGroupingCollector<>(
+          new TermGroupSelector(groupField), groupSort, topDocs);
     }
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
-  private <T> TopGroupsCollector<T> createSecondPassCollector(FirstPassGroupingCollector firstPassGroupingCollector,
-                                                                       Sort groupSort,
-                                                                       Sort sortWithinGroup,
-                                                                       int groupOffset,
-                                                                       int maxDocsPerGroup,
-                                                                       boolean getMaxScores) throws IOException {
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  private <T> TopGroupsCollector<T> createSecondPassCollector(
+      FirstPassGroupingCollector firstPassGroupingCollector,
+      Sort groupSort,
+      Sort sortWithinGroup,
+      int groupOffset,
+      int maxDocsPerGroup,
+      boolean getMaxScores)
+      throws IOException {
 
     Collection<SearchGroup<T>> searchGroups = firstPassGroupingCollector.getTopGroups(groupOffset);
-    return new TopGroupsCollector<>(firstPassGroupingCollector.getGroupSelector(), searchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getMaxScores);
+    return new TopGroupsCollector<>(
+        firstPassGroupingCollector.getGroupSelector(),
+        searchGroups,
+        groupSort,
+        sortWithinGroup,
+        maxDocsPerGroup,
+        getMaxScores);
   }
 
   // Basically converts searchGroups from MutableValue to BytesRef if grouping by ValueSource
   @SuppressWarnings("unchecked")
-  private TopGroupsCollector<?> createSecondPassCollector(FirstPassGroupingCollector<?> firstPassGroupingCollector,
-                                                                   String groupField,
-                                                                   Collection<SearchGroup<BytesRef>> searchGroups,
-                                                                   Sort groupSort,
-                                                                   Sort sortWithinGroup,
-                                                                   int maxDocsPerGroup,
-                                                                   boolean getMaxScores) throws IOException {
-    if (firstPassGroupingCollector.getGroupSelector().getClass().isAssignableFrom(TermGroupSelector.class)) {
-      GroupSelector<BytesRef> selector = (GroupSelector<BytesRef>) firstPassGroupingCollector.getGroupSelector();
-      return new TopGroupsCollector<>(selector, searchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getMaxScores);
+  private TopGroupsCollector<?> createSecondPassCollector(
+      FirstPassGroupingCollector<?> firstPassGroupingCollector,
+      String groupField,
+      Collection<SearchGroup<BytesRef>> searchGroups,
+      Sort groupSort,
+      Sort sortWithinGroup,
+      int maxDocsPerGroup,
+      boolean getMaxScores)
+      throws IOException {
+    if (firstPassGroupingCollector
+        .getGroupSelector()
+        .getClass()
+        .isAssignableFrom(TermGroupSelector.class)) {
+      GroupSelector<BytesRef> selector =
+          (GroupSelector<BytesRef>) firstPassGroupingCollector.getGroupSelector();
+      return new TopGroupsCollector<>(
+          selector, searchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getMaxScores);
     } else {
       ValueSource vs = new BytesRefFieldSource(groupField);
       List<SearchGroup<MutableValue>> mvalSearchGroups = new ArrayList<>(searchGroups.size());
@@ -253,12 +280,13 @@ public class TestGrouping extends LuceneTestCase {
         mvalSearchGroups.add(sg);
       }
       ValueSourceGroupSelector selector = new ValueSourceGroupSelector(vs, new HashMap<>());
-      return new TopGroupsCollector<>(selector, mvalSearchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getMaxScores);
+      return new TopGroupsCollector<>(
+          selector, mvalSearchGroups, groupSort, sortWithinGroup, maxDocsPerGroup, getMaxScores);
     }
   }
 
-  private AllGroupsCollector<?> createAllGroupsCollector(FirstPassGroupingCollector<?> firstPassGroupingCollector,
-                                                         String groupField) {
+  private AllGroupsCollector<?> createAllGroupsCollector(
+      FirstPassGroupingCollector<?> firstPassGroupingCollector, String groupField) {
     return new AllGroupsCollector<>(firstPassGroupingCollector.getGroupSelector());
   }
 
@@ -285,15 +313,18 @@ public class TestGrouping extends LuceneTestCase {
     }
   }
 
-  private Collection<SearchGroup<BytesRef>> getSearchGroups(FirstPassGroupingCollector<?> c, int groupOffset) throws IOException {
+  private Collection<SearchGroup<BytesRef>> getSearchGroups(
+      FirstPassGroupingCollector<?> c, int groupOffset) throws IOException {
     if (TermGroupSelector.class.isAssignableFrom(c.getGroupSelector().getClass())) {
       @SuppressWarnings("unchecked")
       FirstPassGroupingCollector<BytesRef> collector = (FirstPassGroupingCollector<BytesRef>) c;
       return collector.getTopGroups(groupOffset);
     } else if (ValueSourceGroupSelector.class.isAssignableFrom(c.getGroupSelector().getClass())) {
       @SuppressWarnings("unchecked")
-      FirstPassGroupingCollector<MutableValue> collector = (FirstPassGroupingCollector<MutableValue>) c;
-      Collection<SearchGroup<MutableValue>> mutableValueGroups = collector.getTopGroups(groupOffset);
+      FirstPassGroupingCollector<MutableValue> collector =
+          (FirstPassGroupingCollector<MutableValue>) c;
+      Collection<SearchGroup<MutableValue>> mutableValueGroups =
+          collector.getTopGroups(groupOffset);
       if (mutableValueGroups == null) {
         return null;
       }
@@ -301,7 +332,10 @@ public class TestGrouping extends LuceneTestCase {
       List<SearchGroup<BytesRef>> groups = new ArrayList<>(mutableValueGroups.size());
       for (SearchGroup<MutableValue> mutableValueGroup : mutableValueGroups) {
         SearchGroup<BytesRef> sg = new SearchGroup<>();
-        sg.groupValue = mutableValueGroup.groupValue.exists() ? ((MutableValueStr) mutableValueGroup.groupValue).value.get() : null;
+        sg.groupValue =
+            mutableValueGroup.groupValue.exists()
+                ? ((MutableValueStr) mutableValueGroup.groupValue).value.get()
+                : null;
         sg.sortValues = mutableValueGroup.sortValues;
         groups.add(sg);
       }
@@ -321,12 +355,27 @@ public class TestGrouping extends LuceneTestCase {
       TopGroups<MutableValue> mvalTopGroups = collector.getTopGroups(withinGroupOffset);
       List<GroupDocs<BytesRef>> groups = new ArrayList<>(mvalTopGroups.groups.length);
       for (GroupDocs<MutableValue> mvalGd : mvalTopGroups.groups) {
-        BytesRef groupValue = mvalGd.groupValue.exists() ? ((MutableValueStr) mvalGd.groupValue).value.get() : null;
-        groups.add(new GroupDocs<>(Float.NaN, mvalGd.maxScore, mvalGd.totalHits, mvalGd.scoreDocs, groupValue, mvalGd.groupSortValues));
+        BytesRef groupValue =
+            mvalGd.groupValue.exists() ? ((MutableValueStr) mvalGd.groupValue).value.get() : null;
+        groups.add(
+            new GroupDocs<>(
+                Float.NaN,
+                mvalGd.maxScore,
+                mvalGd.totalHits,
+                mvalGd.scoreDocs,
+                groupValue,
+                mvalGd.groupSortValues));
       }
-      // NOTE: currenlty using diamond operator on MergedIterator (without explicit Term class) causes
+      // NOTE: currenlty using diamond operator on MergedIterator (without explicit Term class)
+      // causes
       // errors on Eclipse Compiler (ecj) used for javadoc lint
-      return new TopGroups<BytesRef>(mvalTopGroups.groupSort, mvalTopGroups.withinGroupSort, mvalTopGroups.totalHitCount, mvalTopGroups.totalGroupedHitCount, groups.toArray(new GroupDocs[groups.size()]), Float.NaN);
+      return new TopGroups<BytesRef>(
+          mvalTopGroups.groupSort,
+          mvalTopGroups.withinGroupSort,
+          mvalTopGroups.totalHitCount,
+          mvalTopGroups.totalGroupedHitCount,
+          groups.toArray(new GroupDocs[groups.size()]),
+          Float.NaN);
     }
     fail();
     return null;
@@ -377,7 +426,7 @@ public class TestGrouping extends LuceneTestCase {
     return new Comparator<GroupDoc>() {
       @Override
       public int compare(GroupDoc d1, GroupDoc d2) {
-        for(SortField sf : sortFields) {
+        for (SortField sf : sortFields) {
           final int cmp;
           if (sf.getType() == SortField.Type.SCORE) {
             if (d1.score > d2.score) {
@@ -406,11 +455,11 @@ public class TestGrouping extends LuceneTestCase {
     };
   }
 
-  @SuppressWarnings({"unchecked","rawtypes"})
+  @SuppressWarnings({"unchecked", "rawtypes"})
   private Comparable<?>[] fillFields(GroupDoc d, Sort sort) {
     final SortField[] sortFields = sort.getSort();
     final Comparable<?>[] fields = new Comparable[sortFields.length];
-    for(int fieldIDX=0;fieldIDX<sortFields.length;fieldIDX++) {
+    for (int fieldIDX = 0; fieldIDX < sortFields.length; fieldIDX++) {
       final Comparable<?> c;
       final SortField sf = sortFields[fieldIDX];
       if (sf.getType() == SortField.Type.SCORE) {
@@ -436,46 +485,47 @@ public class TestGrouping extends LuceneTestCase {
     }
   }
 
-  private TopGroups<BytesRef> slowGrouping(GroupDoc[] groupDocs,
-                                           String searchTerm,
-                                           boolean getMaxScores,
-                                           boolean doAllGroups,
-                                           Sort groupSort,
-                                           Sort docSort,
-                                           int topNGroups,
-                                           int docsPerGroup,
-                                           int groupOffset,
-                                           int docOffset) {
+  private TopGroups<BytesRef> slowGrouping(
+      GroupDoc[] groupDocs,
+      String searchTerm,
+      boolean getMaxScores,
+      boolean doAllGroups,
+      Sort groupSort,
+      Sort docSort,
+      int topNGroups,
+      int docsPerGroup,
+      int groupOffset,
+      int docOffset) {
 
     final Comparator<GroupDoc> groupSortComp = getComparator(groupSort);
 
     Arrays.sort(groupDocs, groupSortComp);
-    final HashMap<BytesRef,List<GroupDoc>> groups = new HashMap<>();
+    final HashMap<BytesRef, List<GroupDoc>> groups = new HashMap<>();
     final List<BytesRef> sortedGroups = new ArrayList<>();
     final List<Comparable<?>[]> sortedGroupFields = new ArrayList<>();
 
     int totalHitCount = 0;
     Set<BytesRef> knownGroups = new HashSet<>();
 
-    //System.out.println("TEST: slowGrouping");
-    for(GroupDoc d : groupDocs) {
+    // System.out.println("TEST: slowGrouping");
+    for (GroupDoc d : groupDocs) {
       // TODO: would be better to filter by searchTerm before sorting!
       if (!d.content.startsWith(searchTerm)) {
         continue;
       }
       totalHitCount++;
-      //System.out.println("  match id=" + d.id + " score=" + d.score);
+      // System.out.println("  match id=" + d.id + " score=" + d.score);
 
       if (doAllGroups) {
         if (!knownGroups.contains(d.group)) {
           knownGroups.add(d.group);
-          //System.out.println("    add group=" + groupToString(d.group));
+          // System.out.println("    add group=" + groupToString(d.group));
         }
       }
 
       List<GroupDoc> l = groups.get(d.group);
       if (l == null) {
-        //System.out.println("    add sortedGroup=" + groupToString(d.group));
+        // System.out.println("    add sortedGroup=" + groupToString(d.group));
         sortedGroups.add(d.group);
         sortedGroupFields.add(fillFields(d, groupSort));
         l = new ArrayList<>();
@@ -492,10 +542,10 @@ public class TestGrouping extends LuceneTestCase {
     final int limit = Math.min(groupOffset + topNGroups, groups.size());
 
     final Comparator<GroupDoc> docSortComp = getComparator(docSort);
-    @SuppressWarnings({"unchecked","rawtypes"})
-    final GroupDocs<BytesRef>[] result = new GroupDocs[limit-groupOffset];
+    @SuppressWarnings({"unchecked", "rawtypes"})
+    final GroupDocs<BytesRef>[] result = new GroupDocs[limit - groupOffset];
     int totalGroupedHitCount = 0;
-    for(int idx=groupOffset;idx < limit;idx++) {
+    for (int idx = groupOffset; idx < limit; idx++) {
       final BytesRef group = sortedGroups.get(idx);
       final List<GroupDoc> docs = groups.get(group);
       totalGroupedHitCount += docs.size();
@@ -504,41 +554,55 @@ public class TestGrouping extends LuceneTestCase {
       if (docs.size() > docOffset) {
         final int docIDXLimit = Math.min(docOffset + docsPerGroup, docs.size());
         hits = new ScoreDoc[docIDXLimit - docOffset];
-        for(int docIDX=docOffset; docIDX < docIDXLimit; docIDX++) {
+        for (int docIDX = docOffset; docIDX < docIDXLimit; docIDX++) {
           final GroupDoc d = docs.get(docIDX);
           final FieldDoc fd;
           fd = new FieldDoc(d.id, Float.NaN, fillFields(d, docSort));
-          hits[docIDX-docOffset] = fd;
+          hits[docIDX - docOffset] = fd;
         }
-      } else  {
+      } else {
         hits = new ScoreDoc[0];
       }
 
-      result[idx-groupOffset] = new GroupDocs<>(Float.NaN,
-                                                        0.0f,
-                                                        new TotalHits(docs.size(), TotalHits.Relation.EQUAL_TO),
-                                                        hits,
-                                                        group,
-                                                        sortedGroupFields.get(idx));
+      result[idx - groupOffset] =
+          new GroupDocs<>(
+              Float.NaN,
+              0.0f,
+              new TotalHits(docs.size(), TotalHits.Relation.EQUAL_TO),
+              hits,
+              group,
+              sortedGroupFields.get(idx));
     }
 
     if (doAllGroups) {
       return new TopGroups<>(
-        new TopGroups<>(groupSort.getSort(), docSort.getSort(), totalHitCount, totalGroupedHitCount, result, Float.NaN),
-          knownGroups.size()
-      );
+          new TopGroups<>(
+              groupSort.getSort(),
+              docSort.getSort(),
+              totalHitCount,
+              totalGroupedHitCount,
+              result,
+              Float.NaN),
+          knownGroups.size());
     } else {
-      return new TopGroups<>(groupSort.getSort(), docSort.getSort(), totalHitCount, totalGroupedHitCount, result, Float.NaN);
+      return new TopGroups<>(
+          groupSort.getSort(),
+          docSort.getSort(),
+          totalHitCount,
+          totalGroupedHitCount,
+          result,
+          Float.NaN);
     }
   }
 
-  private DirectoryReader getDocBlockReader(Directory dir, GroupDoc[] groupDocs) throws IOException {
+  private DirectoryReader getDocBlockReader(Directory dir, GroupDoc[] groupDocs)
+      throws IOException {
     // Coalesce by group, but in random order:
     Collections.shuffle(Arrays.asList(groupDocs), random());
-    final Map<BytesRef,List<GroupDoc>> groupMap = new HashMap<>();
+    final Map<BytesRef, List<GroupDoc>> groupMap = new HashMap<>();
     final List<BytesRef> groupValues = new ArrayList<>();
 
-    for(GroupDoc groupDoc : groupDocs) {
+    for (GroupDoc groupDoc : groupDocs) {
       if (!groupMap.containsKey(groupDoc.group)) {
         groupValues.add(groupDoc.group);
         groupMap.put(groupDoc.group, new ArrayList<GroupDoc>());
@@ -546,10 +610,8 @@ public class TestGrouping extends LuceneTestCase {
       groupMap.get(groupDoc.group).add(groupDoc);
     }
 
-    RandomIndexWriter w = new RandomIndexWriter(
-                                                random(),
-                                                dir,
-                                                newIndexWriterConfig(new MockAnalyzer(random())));
+    RandomIndexWriter w =
+        new RandomIndexWriter(random(), dir, newIndexWriterConfig(new MockAnalyzer(random())));
 
     final List<List<Document>> updateDocs = new ArrayList<>();
 
@@ -557,11 +619,11 @@ public class TestGrouping extends LuceneTestCase {
     groupEndType.setIndexOptions(IndexOptions.DOCS);
     groupEndType.setOmitNorms(true);
 
-    //System.out.println("TEST: index groups");
-    for(BytesRef group : groupValues) {
+    // System.out.println("TEST: index groups");
+    for (BytesRef group : groupValues) {
       final List<Document> docs = new ArrayList<>();
-      //System.out.println("TEST:   group=" + (group == null ? "null" : group.utf8ToString()));
-      for(GroupDoc groupValue : groupMap.get(group)) {
+      // System.out.println("TEST:   group=" + (group == null ? "null" : group.utf8ToString()));
+      for (GroupDoc groupValue : groupMap.get(group)) {
         Document doc = new Document();
         docs.add(doc);
         if (groupValue.group != null) {
@@ -574,11 +636,13 @@ public class TestGrouping extends LuceneTestCase {
         doc.add(new SortedDocValuesField("sort2", BytesRef.deepCopyOf(groupValue.sort2)));
         doc.add(new NumericDocValuesField("id", groupValue.id));
         doc.add(newTextField("content", groupValue.content, Field.Store.NO));
-        //System.out.println("TEST:     doc content=" + groupValue.content + " group=" + (groupValue.group == null ? "null" : groupValue.group.utf8ToString()) + " sort1=" + groupValue.sort1.utf8ToString() + " id=" + groupValue.id);
+        // System.out.println("TEST:     doc content=" + groupValue.content + " group=" +
+        // (groupValue.group == null ? "null" : groupValue.group.utf8ToString()) + " sort1=" +
+        // groupValue.sort1.utf8ToString() + " id=" + groupValue.id);
       }
       // So we can pull filter marking last doc in block:
       final Field groupEnd = newField("groupend", "x", groupEndType);
-      docs.get(docs.size()-1).add(groupEnd);
+      docs.get(docs.size() - 1).add(groupEnd);
       // Add as a doc block:
       w.addDocuments(docs);
       if (group != null && random().nextInt(7) == 4) {
@@ -586,7 +650,7 @@ public class TestGrouping extends LuceneTestCase {
       }
     }
 
-    for(List<Document> docs : updateDocs) {
+    for (List<Document> docs : updateDocs) {
       // Just replaces docs w/ same docs:
       w.updateDocuments(new Term("group", docs.get(0).get("group")), docs);
     }
@@ -606,27 +670,27 @@ public class TestGrouping extends LuceneTestCase {
       final IndexReaderContext ctx = s.getTopReaderContext();
       final List<LeafReaderContext> leaves = ctx.leaves();
       subSearchers = new ShardSearcher[leaves.size()];
-      for(int searcherIDX=0;searcherIDX<subSearchers.length;searcherIDX++) {
+      for (int searcherIDX = 0; searcherIDX < subSearchers.length; searcherIDX++) {
         subSearchers[searcherIDX] = new ShardSearcher(leaves.get(searcherIDX), ctx);
       }
 
       docStarts = new int[subSearchers.length];
-      for(int subIDX=0;subIDX<docStarts.length;subIDX++) {
+      for (int subIDX = 0; subIDX < docStarts.length; subIDX++) {
         docStarts[subIDX] = leaves.get(subIDX).docBase;
-        //System.out.println("docStarts[" + subIDX + "]=" + docStarts[subIDX]);
+        // System.out.println("docStarts[" + subIDX + "]=" + docStarts[subIDX]);
       }
     }
   }
 
   public void testRandom() throws Exception {
     int numberOfRuns = atLeast(1);
-    for (int iter=0; iter<numberOfRuns; iter++) {
+    for (int iter = 0; iter < numberOfRuns; iter++) {
       if (VERBOSE) {
         System.out.println("TEST: iter=" + iter);
       }
 
       final int numDocs = atLeast(100);
-      //final int numDocs = _TestUtil.nextInt(random, 5, 20);
+      // final int numDocs = _TestUtil.nextInt(random, 5, 20);
 
       final int numGroups = TestUtil.nextInt(random(), 1, numDocs);
 
@@ -635,14 +699,15 @@ public class TestGrouping extends LuceneTestCase {
       }
 
       final List<BytesRef> groups = new ArrayList<>();
-      for(int i=0;i<numGroups;i++) {
+      for (int i = 0; i < numGroups; i++) {
         String randomValue;
         do {
-          // B/c of DV based impl we can't see the difference between an empty string and a null value.
+          // B/c of DV based impl we can't see the difference between an empty string and a null
+          // value.
           // For that reason we don't generate empty string
           // groups.
           randomValue = TestUtil.randomRealisticUnicodeString(random());
-          //randomValue = TestUtil.randomSimpleString(random());
+          // randomValue = TestUtil.randomSimpleString(random());
         } while ("".equals(randomValue));
 
         groups.add(new BytesRef(randomValue));
@@ -651,11 +716,11 @@ public class TestGrouping extends LuceneTestCase {
       if (VERBOSE) {
         System.out.println("TEST: create fake content");
       }
-      for(int contentIDX=0;contentIDX<contentStrings.length;contentIDX++) {
+      for (int contentIDX = 0; contentIDX < contentStrings.length; contentIDX++) {
         final StringBuilder sb = new StringBuilder();
         sb.append("real").append(random().nextInt(3)).append(' ');
         final int fakeCount = random().nextInt(10);
-        for(int fakeIDX=0;fakeIDX<fakeCount;fakeIDX++) {
+        for (int fakeIDX = 0; fakeIDX < fakeCount; fakeIDX++) {
           sb.append("fake ");
         }
         contentStrings[contentIDX] = sb.toString();
@@ -665,10 +730,8 @@ public class TestGrouping extends LuceneTestCase {
       }
 
       Directory dir = newDirectory();
-      RandomIndexWriter w = new RandomIndexWriter(
-                                                  random(),
-                                                  dir,
-                                                  newIndexWriterConfig(new MockAnalyzer(random())));
+      RandomIndexWriter w =
+          new RandomIndexWriter(random(), dir, newIndexWriterConfig(new MockAnalyzer(random())));
       Document doc = new Document();
       Document docNoGroup = new Document();
       Field idvGroupField = new SortedDocValuesField("group", new BytesRef());
@@ -690,7 +753,7 @@ public class TestGrouping extends LuceneTestCase {
       doc.add(idDV);
       docNoGroup.add(idDV);
       final GroupDoc[] groupDocs = new GroupDoc[numDocs];
-      for(int i=0;i<numDocs;i++) {
+      for (int i = 0; i < numDocs; i++) {
         final BytesRef groupValue;
         if (random().nextInt(24) == 17) {
           // So we test the "doc doesn't have the group'd
@@ -699,13 +762,25 @@ public class TestGrouping extends LuceneTestCase {
         } else {
           groupValue = groups.get(random().nextInt(groups.size()));
         }
-        final GroupDoc groupDoc = new GroupDoc(i,
-                                               groupValue,
-                                               groups.get(random().nextInt(groups.size())),
-                                               groups.get(random().nextInt(groups.size())),
-                                               contentStrings[random().nextInt(contentStrings.length)]);
+        final GroupDoc groupDoc =
+            new GroupDoc(
+                i,
+                groupValue,
+                groups.get(random().nextInt(groups.size())),
+                groups.get(random().nextInt(groups.size())),
+                contentStrings[random().nextInt(contentStrings.length)]);
         if (VERBOSE) {
-          System.out.println("  doc content=" + groupDoc.content + " id=" + i + " group=" + (groupDoc.group == null ? "null" : groupDoc.group.utf8ToString()) + " sort1=" + groupDoc.sort1.utf8ToString() + " sort2=" + groupDoc.sort2.utf8ToString());
+          System.out.println(
+              "  doc content="
+                  + groupDoc.content
+                  + " id="
+                  + i
+                  + " group="
+                  + (groupDoc.group == null ? "null" : groupDoc.group.utf8ToString())
+                  + " sort1="
+                  + groupDoc.sort1.utf8ToString()
+                  + " sort2="
+                  + groupDoc.sort2.utf8ToString());
         }
 
         groupDocs[i] = groupDoc;
@@ -735,10 +810,10 @@ public class TestGrouping extends LuceneTestCase {
 
       final DirectoryReader r = w.getReader();
       w.close();
-      
+
       NumericDocValues values = MultiDocValues.getNumericValues(r, "id");
       int[] docIDToID = new int[r.maxDoc()];
-      for(int i=0;i<r.maxDoc();i++) {
+      for (int i = 0; i < r.maxDoc(); i++) {
         assertEquals(i, values.nextDoc());
         docIDToID[i] = (int) values.longValue();
       }
@@ -752,13 +827,14 @@ public class TestGrouping extends LuceneTestCase {
       if (VERBOSE) {
         System.out.println("\nTEST: searcher=" + s);
       }
-      
+
       final ShardState shards = new ShardState(s);
-      
+
       Set<Integer> seenIDs = new HashSet<>();
-      for(int contentID=0;contentID<3;contentID++) {
-        final ScoreDoc[] hits = s.search(new TermQuery(new Term("content", "real"+contentID)), numDocs).scoreDocs;
-        for(ScoreDoc hit : hits) {
+      for (int contentID = 0; contentID < 3; contentID++) {
+        final ScoreDoc[] hits =
+            s.search(new TermQuery(new Term("content", "real" + contentID)), numDocs).scoreDocs;
+        for (ScoreDoc hit : hits) {
           int idValue = docIDToID[hit.doc];
 
           final GroupDoc gd = groupDocs[idValue];
@@ -768,111 +844,141 @@ public class TestGrouping extends LuceneTestCase {
           assertEquals(gd.id, idValue);
         }
       }
-      
+
       // make sure all groups were seen across the hits
       assertEquals(groupDocs.length, seenIDs.size());
 
-      for(GroupDoc gd : groupDocs) {
+      for (GroupDoc gd : groupDocs) {
         assertTrue(Float.isFinite(gd.score));
         assertTrue(gd.score >= 0.0);
       }
-      
+
       // Build 2nd index, where docs are added in blocks by
       // group, so we can use single pass collector
       dirBlocks = newDirectory();
       rBlocks = getDocBlockReader(dirBlocks, groupDocs);
       final Query lastDocInBlock = new TermQuery(new Term("groupend", "x"));
-      
+
       final IndexSearcher sBlocks = newSearcher(rBlocks);
       // This test relies on the fact that longer fields produce lower scores
       sBlocks.setSimilarity(new BM25Similarity());
 
       final ShardState shardsBlocks = new ShardState(sBlocks);
-      
+
       // ReaderBlocks only increases maxDoc() vs reader, which
       // means a monotonic shift in scores, so we can
       // reliably remap them w/ Map:
-      final Map<String,Map<Float,Float>> scoreMap = new HashMap<>();
+      final Map<String, Map<Float, Float>> scoreMap = new HashMap<>();
 
       values = MultiDocValues.getNumericValues(rBlocks, "id");
       assertNotNull(values);
       int[] docIDToIDBlocks = new int[rBlocks.maxDoc()];
-      for(int i=0;i<rBlocks.maxDoc();i++) {
+      for (int i = 0; i < rBlocks.maxDoc(); i++) {
         assertEquals(i, values.nextDoc());
         docIDToIDBlocks[i] = (int) values.longValue();
       }
-      
+
       // Tricky: must separately set .score2, because the doc
       // block index was created with possible deletions!
-      //System.out.println("fixup score2");
-      for(int contentID=0;contentID<3;contentID++) {
-        //System.out.println("  term=real" + contentID);
-        final Map<Float,Float> termScoreMap = new HashMap<>();
-        scoreMap.put("real"+contentID, termScoreMap);
-        //System.out.println("term=real" + contentID + " dfold=" + s.docFreq(new Term("content", "real"+contentID)) +
-        //" dfnew=" + sBlocks.docFreq(new Term("content", "real"+contentID)));
-        final ScoreDoc[] hits = sBlocks.search(new TermQuery(new Term("content", "real"+contentID)), numDocs).scoreDocs;
-        for(ScoreDoc hit : hits) {
+      // System.out.println("fixup score2");
+      for (int contentID = 0; contentID < 3; contentID++) {
+        // System.out.println("  term=real" + contentID);
+        final Map<Float, Float> termScoreMap = new HashMap<>();
+        scoreMap.put("real" + contentID, termScoreMap);
+        // System.out.println("term=real" + contentID + " dfold=" + s.docFreq(new Term("content",
+        // "real"+contentID)) +
+        // " dfnew=" + sBlocks.docFreq(new Term("content", "real"+contentID)));
+        final ScoreDoc[] hits =
+            sBlocks.search(new TermQuery(new Term("content", "real" + contentID)), numDocs)
+                .scoreDocs;
+        for (ScoreDoc hit : hits) {
           final GroupDoc gd = groupDocsByID[docIDToIDBlocks[hit.doc]];
           assertTrue(gd.score2 == 0.0);
           gd.score2 = hit.score;
           assertEquals(gd.id, docIDToIDBlocks[hit.doc]);
-          //System.out.println("    score=" + gd.score + " score2=" + hit.score + " id=" + docIDToIDBlocks[hit.doc]);
+          // System.out.println("    score=" + gd.score + " score2=" + hit.score + " id=" +
+          // docIDToIDBlocks[hit.doc]);
           termScoreMap.put(gd.score, gd.score2);
         }
       }
-      
-      for(int searchIter=0;searchIter<100;searchIter++) {
-        
+
+      for (int searchIter = 0; searchIter < 100; searchIter++) {
+
         if (VERBOSE) {
           System.out.println("\nTEST: searchIter=" + searchIter);
         }
-        
+
         final String searchTerm = "real" + random().nextInt(3);
         final boolean getMaxScores = random().nextBoolean();
         final Sort groupSort = getRandomSort();
-        //final Sort groupSort = new Sort(new SortField[] {new SortField("sort1", SortField.STRING), new SortField("id", SortField.INT)});
+        // final Sort groupSort = new Sort(new SortField[] {new SortField("sort1",
+        // SortField.STRING), new SortField("id", SortField.INT)});
         final Sort docSort = getRandomSort();
-        
+
         final int topNGroups = TestUtil.nextInt(random(), 1, 30);
-        //final int topNGroups = 10;
+        // final int topNGroups = 10;
         final int docsPerGroup = TestUtil.nextInt(random(), 1, 50);
-        
+
         final int groupOffset = TestUtil.nextInt(random(), 0, (topNGroups - 1) / 2);
-        //final int groupOffset = 0;
-        
+        // final int groupOffset = 0;
+
         final int docOffset = TestUtil.nextInt(random(), 0, docsPerGroup - 1);
-        //final int docOffset = 0;
+        // final int docOffset = 0;
 
         final boolean doCache = random().nextBoolean();
         final boolean doAllGroups = random().nextBoolean();
         if (VERBOSE) {
-          System.out.println("TEST: groupSort=" + groupSort + " docSort=" + docSort + " searchTerm=" + searchTerm + " dF=" + r.docFreq(new Term("content", searchTerm))  +" dFBlock=" + rBlocks.docFreq(new Term("content", searchTerm)) + " topNGroups=" + topNGroups + " groupOffset=" + groupOffset + " docOffset=" + docOffset + " doCache=" + doCache + " docsPerGroup=" + docsPerGroup + " doAllGroups=" + doAllGroups + " getMaxScores=" + getMaxScores);
+          System.out.println(
+              "TEST: groupSort="
+                  + groupSort
+                  + " docSort="
+                  + docSort
+                  + " searchTerm="
+                  + searchTerm
+                  + " dF="
+                  + r.docFreq(new Term("content", searchTerm))
+                  + " dFBlock="
+                  + rBlocks.docFreq(new Term("content", searchTerm))
+                  + " topNGroups="
+                  + topNGroups
+                  + " groupOffset="
+                  + groupOffset
+                  + " docOffset="
+                  + docOffset
+                  + " doCache="
+                  + doCache
+                  + " docsPerGroup="
+                  + docsPerGroup
+                  + " doAllGroups="
+                  + doAllGroups
+                  + " getMaxScores="
+                  + getMaxScores);
         }
-        
+
         String groupField = "group";
         if (VERBOSE) {
           System.out.println("  groupField=" + groupField);
         }
-        final FirstPassGroupingCollector<?> c1 = createRandomFirstPassCollector(groupField, groupSort, groupOffset+topNGroups);
+        final FirstPassGroupingCollector<?> c1 =
+            createRandomFirstPassCollector(groupField, groupSort, groupOffset + topNGroups);
         final CachingCollector cCache;
         final Collector c;
-        
+
         final AllGroupsCollector<?> allGroupsCollector;
         if (doAllGroups) {
           allGroupsCollector = createAllGroupsCollector(c1, groupField);
         } else {
           allGroupsCollector = null;
         }
-        
+
         final boolean useWrappingCollector = random().nextBoolean();
-        
+
         if (doCache) {
           final double maxCacheMB = random().nextDouble();
           if (VERBOSE) {
             System.out.println("TEST: maxCacheMB=" + maxCacheMB);
           }
-          
+
           if (useWrappingCollector) {
             if (doAllGroups) {
               cCache = CachingCollector.create(c1, true, maxCacheMB);
@@ -892,12 +998,12 @@ public class TestGrouping extends LuceneTestCase {
             c = c1;
           }
         }
-        
+
         // Search top reader:
         final Query query = new TermQuery(new Term("content", searchTerm));
-        
+
         s.search(query, c);
-        
+
         if (doCache && !useWrappingCollector) {
           if (cCache.isCached()) {
             // Replay for first-pass grouping
@@ -914,7 +1020,7 @@ public class TestGrouping extends LuceneTestCase {
             }
           }
         }
-        
+
         // Get 1st pass top groups
         final Collection<SearchGroup<BytesRef>> topGroups = getSearchGroups(c1, groupOffset);
         final TopGroups<BytesRef> groupsResult;
@@ -924,26 +1030,50 @@ public class TestGrouping extends LuceneTestCase {
             System.out.println("  null");
           } else {
             for (SearchGroup<BytesRef> searchGroup : topGroups) {
-              System.out.println("  " + (searchGroup.groupValue == null ? "null" : searchGroup.groupValue) + ": " + Arrays.deepToString(searchGroup.sortValues));
+              System.out.println(
+                  "  "
+                      + (searchGroup.groupValue == null ? "null" : searchGroup.groupValue)
+                      + ": "
+                      + Arrays.deepToString(searchGroup.sortValues));
             }
           }
         }
-        
+
         // Get 1st pass top groups using shards
-        
-        final TopGroups<BytesRef> topGroupsShards = searchShards(s, shards.subSearchers, query, groupSort, docSort,
-            groupOffset, topNGroups, docOffset, docsPerGroup, getMaxScores, true, true);
+
+        final TopGroups<BytesRef> topGroupsShards =
+            searchShards(
+                s,
+                shards.subSearchers,
+                query,
+                groupSort,
+                docSort,
+                groupOffset,
+                topNGroups,
+                docOffset,
+                docsPerGroup,
+                getMaxScores,
+                true,
+                true);
         final TopGroupsCollector<?> c2;
         if (topGroups != null) {
-          
+
           if (VERBOSE) {
             System.out.println("TEST: topGroups");
             for (SearchGroup<BytesRef> searchGroup : topGroups) {
-              System.out.println("  " + (searchGroup.groupValue == null ? "null" : searchGroup.groupValue.utf8ToString()) + ": " + Arrays.deepToString(searchGroup.sortValues));
+              System.out.println(
+                  "  "
+                      + (searchGroup.groupValue == null
+                          ? "null"
+                          : searchGroup.groupValue.utf8ToString())
+                      + ": "
+                      + Arrays.deepToString(searchGroup.sortValues));
             }
           }
-          
-          c2 = createSecondPassCollector(c1, groupSort, docSort, groupOffset, docOffset + docsPerGroup, getMaxScores);
+
+          c2 =
+              createSecondPassCollector(
+                  c1, groupSort, docSort, groupOffset, docOffset + docsPerGroup, getMaxScores);
           if (doCache) {
             if (cCache.isCached()) {
               if (VERBOSE) {
@@ -959,7 +1089,7 @@ public class TestGrouping extends LuceneTestCase {
           } else {
             s.search(query, c2);
           }
-          
+
           if (doAllGroups) {
             TopGroups<BytesRef> tempTopGroups = getTopGroups(c2, docOffset);
             groupsResult = new TopGroups<>(tempTopGroups, allGroupsCollector.getGroupCount());
@@ -973,63 +1103,99 @@ public class TestGrouping extends LuceneTestCase {
             System.out.println("TEST:   no results");
           }
         }
-        
-        final TopGroups<BytesRef> expectedGroups = slowGrouping(groupDocs, searchTerm, getMaxScores, doAllGroups, groupSort, docSort, topNGroups, docsPerGroup, groupOffset, docOffset);
-        
+
+        final TopGroups<BytesRef> expectedGroups =
+            slowGrouping(
+                groupDocs,
+                searchTerm,
+                getMaxScores,
+                doAllGroups,
+                groupSort,
+                docSort,
+                topNGroups,
+                docsPerGroup,
+                groupOffset,
+                docOffset);
+
         if (VERBOSE) {
           if (expectedGroups == null) {
             System.out.println("TEST: no expected groups");
           } else {
-            System.out.println("TEST: expected groups totalGroupedHitCount=" + expectedGroups.totalGroupedHitCount);
-            for(GroupDocs<BytesRef> gd : expectedGroups.groups) {
-              System.out.println("  group=" + (gd.groupValue == null ? "null" : gd.groupValue) + " totalHits=" + gd.totalHits.value + " scoreDocs.len=" + gd.scoreDocs.length);
-              for(ScoreDoc sd : gd.scoreDocs) {
+            System.out.println(
+                "TEST: expected groups totalGroupedHitCount="
+                    + expectedGroups.totalGroupedHitCount);
+            for (GroupDocs<BytesRef> gd : expectedGroups.groups) {
+              System.out.println(
+                  "  group="
+                      + (gd.groupValue == null ? "null" : gd.groupValue)
+                      + " totalHits="
+                      + gd.totalHits.value
+                      + " scoreDocs.len="
+                      + gd.scoreDocs.length);
+              for (ScoreDoc sd : gd.scoreDocs) {
                 System.out.println("    id=" + sd.doc + " score=" + sd.score);
               }
             }
           }
-          
+
           if (groupsResult == null) {
             System.out.println("TEST: no matched groups");
           } else {
-            System.out.println("TEST: matched groups totalGroupedHitCount=" + groupsResult.totalGroupedHitCount);
-            for(GroupDocs<BytesRef> gd : groupsResult.groups) {
-              System.out.println("  group=" + (gd.groupValue == null ? "null" : gd.groupValue) + " totalHits=" + gd.totalHits.value);
-              for(ScoreDoc sd : gd.scoreDocs) {
+            System.out.println(
+                "TEST: matched groups totalGroupedHitCount=" + groupsResult.totalGroupedHitCount);
+            for (GroupDocs<BytesRef> gd : groupsResult.groups) {
+              System.out.println(
+                  "  group="
+                      + (gd.groupValue == null ? "null" : gd.groupValue)
+                      + " totalHits="
+                      + gd.totalHits.value);
+              for (ScoreDoc sd : gd.scoreDocs) {
                 System.out.println("    id=" + docIDToID[sd.doc] + " score=" + sd.score);
               }
             }
-            
+
             if (searchIter == 14) {
-              for(int docIDX=0;docIDX<s.getIndexReader().maxDoc();docIDX++) {
-                System.out.println("ID=" + docIDToID[docIDX] + " explain=" + s.explain(query, docIDX));
+              for (int docIDX = 0; docIDX < s.getIndexReader().maxDoc(); docIDX++) {
+                System.out.println(
+                    "ID=" + docIDToID[docIDX] + " explain=" + s.explain(query, docIDX));
               }
             }
           }
-          
+
           if (topGroupsShards == null) {
             System.out.println("TEST: no matched-merged groups");
           } else {
-            System.out.println("TEST: matched-merged groups totalGroupedHitCount=" + topGroupsShards.totalGroupedHitCount);
-            for(GroupDocs<BytesRef> gd : topGroupsShards.groups) {
-              System.out.println("  group=" + (gd.groupValue == null ? "null" : gd.groupValue) + " totalHits=" + gd.totalHits.value);
-              for(ScoreDoc sd : gd.scoreDocs) {
+            System.out.println(
+                "TEST: matched-merged groups totalGroupedHitCount="
+                    + topGroupsShards.totalGroupedHitCount);
+            for (GroupDocs<BytesRef> gd : topGroupsShards.groups) {
+              System.out.println(
+                  "  group="
+                      + (gd.groupValue == null ? "null" : gd.groupValue)
+                      + " totalHits="
+                      + gd.totalHits.value);
+              for (ScoreDoc sd : gd.scoreDocs) {
                 System.out.println("    id=" + docIDToID[sd.doc] + " score=" + sd.score);
               }
             }
           }
         }
-        
+
         assertEquals(docIDToID, expectedGroups, groupsResult, true, true, true);
-        
+
         // Confirm merged shards match:
         assertEquals(docIDToID, expectedGroups, topGroupsShards, true, false, true);
         if (topGroupsShards != null) {
           verifyShards(shards.docStarts, topGroupsShards);
         }
 
-        final BlockGroupingCollector c3 = new BlockGroupingCollector(groupSort, groupOffset+topNGroups,
-            groupSort.needsScores() || docSort.needsScores(), sBlocks.createWeight(sBlocks.rewrite(lastDocInBlock), ScoreMode.COMPLETE_NO_SCORES, 1));
+        final BlockGroupingCollector c3 =
+            new BlockGroupingCollector(
+                groupSort,
+                groupOffset + topNGroups,
+                groupSort.needsScores() || docSort.needsScores(),
+                sBlocks.createWeight(
+                    sBlocks.rewrite(lastDocInBlock), ScoreMode.COMPLETE_NO_SCORES, 1));
         final AllGroupsCollector<BytesRef> allGroupsCollector2;
         final Collector c4;
         if (doAllGroups) {
@@ -1044,25 +1210,35 @@ public class TestGrouping extends LuceneTestCase {
         }
         // Get block grouping result:
         sBlocks.search(query, c4);
-        @SuppressWarnings({"unchecked","rawtypes"})
-        final TopGroups<BytesRef> tempTopGroupsBlocks = (TopGroups<BytesRef>) c3.getTopGroups(docSort, groupOffset, docOffset, docOffset+docsPerGroup);
+        @SuppressWarnings({"unchecked", "rawtypes"})
+        final TopGroups<BytesRef> tempTopGroupsBlocks =
+            (TopGroups<BytesRef>)
+                c3.getTopGroups(docSort, groupOffset, docOffset, docOffset + docsPerGroup);
         final TopGroups<BytesRef> groupsResultBlocks;
         if (doAllGroups && tempTopGroupsBlocks != null) {
-          assertEquals((int) tempTopGroupsBlocks.totalGroupCount, allGroupsCollector2.getGroupCount());
-          groupsResultBlocks = new TopGroups<>(tempTopGroupsBlocks, allGroupsCollector2.getGroupCount());
+          assertEquals(
+              (int) tempTopGroupsBlocks.totalGroupCount, allGroupsCollector2.getGroupCount());
+          groupsResultBlocks =
+              new TopGroups<>(tempTopGroupsBlocks, allGroupsCollector2.getGroupCount());
         } else {
           groupsResultBlocks = tempTopGroupsBlocks;
         }
-        
+
         if (VERBOSE) {
           if (groupsResultBlocks == null) {
             System.out.println("TEST: no block groups");
           } else {
-            System.out.println("TEST: block groups totalGroupedHitCount=" + groupsResultBlocks.totalGroupedHitCount);
+            System.out.println(
+                "TEST: block groups totalGroupedHitCount="
+                    + groupsResultBlocks.totalGroupedHitCount);
             boolean first = true;
-            for(GroupDocs<BytesRef> gd : groupsResultBlocks.groups) {
-              System.out.println("  group=" + (gd.groupValue == null ? "null" : gd.groupValue.utf8ToString()) + " totalHits=" + gd.totalHits.value);
-              for(ScoreDoc sd : gd.scoreDocs) {
+            for (GroupDocs<BytesRef> gd : groupsResultBlocks.groups) {
+              System.out.println(
+                  "  group="
+                      + (gd.groupValue == null ? "null" : gd.groupValue.utf8ToString())
+                      + " totalHits="
+                      + gd.totalHits.value);
+              for (ScoreDoc sd : gd.scoreDocs) {
                 System.out.println("    id=" + docIDToIDBlocks[sd.doc] + " score=" + sd.score);
                 if (first) {
                   System.out.println("explain: " + sBlocks.explain(query, sd.doc));
@@ -1072,41 +1248,56 @@ public class TestGrouping extends LuceneTestCase {
             }
           }
         }
-        
+
         // Get shard'd block grouping result:
-        final TopGroups<BytesRef> topGroupsBlockShards = searchShards(sBlocks, shardsBlocks.subSearchers, query,
-            groupSort, docSort, groupOffset, topNGroups, docOffset, docsPerGroup, getMaxScores, false, false);
-        
+        final TopGroups<BytesRef> topGroupsBlockShards =
+            searchShards(
+                sBlocks,
+                shardsBlocks.subSearchers,
+                query,
+                groupSort,
+                docSort,
+                groupOffset,
+                topNGroups,
+                docOffset,
+                docsPerGroup,
+                getMaxScores,
+                false,
+                false);
+
         if (expectedGroups != null) {
           // Fixup scores for reader2
           for (GroupDocs<?> groupDocsHits : expectedGroups.groups) {
-            for(ScoreDoc hit : groupDocsHits.scoreDocs) {
+            for (ScoreDoc hit : groupDocsHits.scoreDocs) {
               final GroupDoc gd = groupDocsByID[hit.doc];
               assertEquals(gd.id, hit.doc);
-              //System.out.println("fixup score " + hit.score + " to " + gd.score2 + " vs " + gd.score);
+              // System.out.println("fixup score " + hit.score + " to " + gd.score2 + " vs " +
+              // gd.score);
               hit.score = gd.score2;
             }
           }
-          
+
           final SortField[] sortFields = groupSort.getSort();
-          final Map<Float,Float> termScoreMap = scoreMap.get(searchTerm);
-          for(int groupSortIDX=0;groupSortIDX<sortFields.length;groupSortIDX++) {
+          final Map<Float, Float> termScoreMap = scoreMap.get(searchTerm);
+          for (int groupSortIDX = 0; groupSortIDX < sortFields.length; groupSortIDX++) {
             if (sortFields[groupSortIDX].getType() == SortField.Type.SCORE) {
               for (GroupDocs<?> groupDocsHits : expectedGroups.groups) {
                 if (groupDocsHits.groupSortValues != null) {
-                  //System.out.println("remap " + groupDocsHits.groupSortValues[groupSortIDX] + " to " + termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX]));
-                  groupDocsHits.groupSortValues[groupSortIDX] = termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX]);
+                  // System.out.println("remap " + groupDocsHits.groupSortValues[groupSortIDX] + "
+                  // to " + termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX]));
+                  groupDocsHits.groupSortValues[groupSortIDX] =
+                      termScoreMap.get(groupDocsHits.groupSortValues[groupSortIDX]);
                   assertNotNull(groupDocsHits.groupSortValues[groupSortIDX]);
                 }
               }
             }
           }
-          
+
           final SortField[] docSortFields = docSort.getSort();
-          for(int docSortIDX=0;docSortIDX<docSortFields.length;docSortIDX++) {
+          for (int docSortIDX = 0; docSortIDX < docSortFields.length; docSortIDX++) {
             if (docSortFields[docSortIDX].getType() == SortField.Type.SCORE) {
               for (GroupDocs<?> groupDocsHits : expectedGroups.groups) {
-                for(ScoreDoc _hit : groupDocsHits.scoreDocs) {
+                for (ScoreDoc _hit : groupDocsHits.scoreDocs) {
                   FieldDoc hit = (FieldDoc) _hit;
                   if (hit.fields != null) {
                     hit.fields[docSortIDX] = termScoreMap.get(hit.fields[docSortIDX]);
@@ -1117,40 +1308,66 @@ public class TestGrouping extends LuceneTestCase {
             }
           }
         }
-        
+
         assertEquals(docIDToIDBlocks, expectedGroups, groupsResultBlocks, false, true, false);
         assertEquals(docIDToIDBlocks, expectedGroups, topGroupsBlockShards, false, false, false);
       }
-      
+
       r.close();
       dir.close();
-      
+
       rBlocks.close();
       dirBlocks.close();
     }
   }
 
   private void verifyShards(int[] docStarts, TopGroups<BytesRef> topGroups) {
-    for(GroupDocs<?> group : topGroups.groups) {
-      for(int hitIDX=0;hitIDX<group.scoreDocs.length;hitIDX++) {
+    for (GroupDocs<?> group : topGroups.groups) {
+      for (int hitIDX = 0; hitIDX < group.scoreDocs.length; hitIDX++) {
         final ScoreDoc sd = group.scoreDocs[hitIDX];
-        assertEquals("doc=" + sd.doc + " wrong shard",
-                     ReaderUtil.subIndex(sd.doc, docStarts),
-                     sd.shardIndex);
+        assertEquals(
+            "doc=" + sd.doc + " wrong shard",
+            ReaderUtil.subIndex(sd.doc, docStarts),
+            sd.shardIndex);
       }
     }
   }
 
-  private TopGroups<BytesRef> searchShards(IndexSearcher topSearcher, ShardSearcher[] subSearchers, Query query, Sort groupSort, Sort docSort, int groupOffset, int topNGroups, int docOffset,
-                                           int topNDocs, boolean getMaxScores, boolean canUseIDV, boolean preFlex) throws Exception {
-
-    // TODO: swap in caching, all groups collector hereassertEquals(expected.totalHitCount, actual.totalHitCount);
+  private TopGroups<BytesRef> searchShards(
+      IndexSearcher topSearcher,
+      ShardSearcher[] subSearchers,
+      Query query,
+      Sort groupSort,
+      Sort docSort,
+      int groupOffset,
+      int topNGroups,
+      int docOffset,
+      int topNDocs,
+      boolean getMaxScores,
+      boolean canUseIDV,
+      boolean preFlex)
+      throws Exception {
+
+    // TODO: swap in caching, all groups collector hereassertEquals(expected.totalHitCount,
+    // actual.totalHitCount);
     // too...
     if (VERBOSE) {
-      System.out.println("TEST: " + subSearchers.length + " shards: " + Arrays.toString(subSearchers) + " canUseIDV=" + canUseIDV);
+      System.out.println(
+          "TEST: "
+              + subSearchers.length
+              + " shards: "
+              + Arrays.toString(subSearchers)
+              + " canUseIDV="
+              + canUseIDV);
     }
     // Run 1st pass collector to get top groups per shard
-    final Weight w = topSearcher.createWeight(topSearcher.rewrite(query), groupSort.needsScores() || docSort.needsScores() || getMaxScores ? ScoreMode.COMPLETE : ScoreMode.COMPLETE_NO_SCORES, 1);
+    final Weight w =
+        topSearcher.createWeight(
+            topSearcher.rewrite(query),
+            groupSort.needsScores() || docSort.needsScores() || getMaxScores
+                ? ScoreMode.COMPLETE
+                : ScoreMode.COMPLETE_NO_SCORES,
+            1);
     final List<Collection<SearchGroup<BytesRef>>> shardGroups = new ArrayList<>();
     List<FirstPassGroupingCollector<?>> firstPassGroupingCollectors = new ArrayList<>();
     FirstPassGroupingCollector<?> firstPassCollector = null;
@@ -1158,14 +1375,17 @@ public class TestGrouping extends LuceneTestCase {
 
     String groupField = "group";
 
-    for(int shardIDX=0;shardIDX<subSearchers.length;shardIDX++) {
+    for (int shardIDX = 0; shardIDX < subSearchers.length; shardIDX++) {
 
       // First shard determines whether we use IDV or not;
       // all other shards match that:
       if (firstPassCollector == null) {
-        firstPassCollector = createRandomFirstPassCollector(groupField, groupSort, groupOffset + topNGroups);
+        firstPassCollector =
+            createRandomFirstPassCollector(groupField, groupSort, groupOffset + topNGroups);
       } else {
-        firstPassCollector = createFirstPassCollector(groupField, groupSort, groupOffset + topNGroups, firstPassCollector);
+        firstPassCollector =
+            createFirstPassCollector(
+                groupField, groupSort, groupOffset + topNGroups, firstPassCollector);
       }
       if (VERBOSE) {
         System.out.println("  shard=" + shardIDX + " groupField=" + groupField);
@@ -1176,50 +1396,94 @@ public class TestGrouping extends LuceneTestCase {
       final Collection<SearchGroup<BytesRef>> topGroups = getSearchGroups(firstPassCollector, 0);
       if (topGroups != null) {
         if (VERBOSE) {
-          System.out.println("  shard " + shardIDX + " s=" + subSearchers[shardIDX] + " totalGroupedHitCount=?" + " " + topGroups.size() + " groups:");
-          for(SearchGroup<BytesRef> group : topGroups) {
-            System.out.println("    " + groupToString(group.groupValue) + " groupSort=" + Arrays.toString(group.sortValues));
+          System.out.println(
+              "  shard "
+                  + shardIDX
+                  + " s="
+                  + subSearchers[shardIDX]
+                  + " totalGroupedHitCount=?"
+                  + " "
+                  + topGroups.size()
+                  + " groups:");
+          for (SearchGroup<BytesRef> group : topGroups) {
+            System.out.println(
+                "    "
+                    + groupToString(group.groupValue)
+                    + " groupSort="
+                    + Arrays.toString(group.sortValues));
           }
         }
         shardGroups.add(topGroups);
       }
     }
 
-    final Collection<SearchGroup<BytesRef>> mergedTopGroups = SearchGroup.merge(shardGroups, groupOffset, topNGroups, groupSort);
+    final Collection<SearchGroup<BytesRef>> mergedTopGroups =
+        SearchGroup.merge(shardGroups, groupOffset, topNGroups, groupSort);
     if (VERBOSE) {
       System.out.println(" top groups merged:");
       if (mergedTopGroups == null) {
         System.out.println("    null");
       } else {
         System.out.println("    " + mergedTopGroups.size() + " top groups:");
-        for(SearchGroup<BytesRef> group : mergedTopGroups) {
-          System.out.println("    [" + groupToString(group.groupValue) + "] groupSort=" + Arrays.toString(group.sortValues));
+        for (SearchGroup<BytesRef> group : mergedTopGroups) {
+          System.out.println(
+              "    ["
+                  + groupToString(group.groupValue)
+                  + "] groupSort="
+                  + Arrays.toString(group.sortValues));
         }
       }
     }
 
     if (mergedTopGroups != null) {
       // Now 2nd pass:
-      @SuppressWarnings({"unchecked","rawtypes"})
+      @SuppressWarnings({"unchecked", "rawtypes"})
       final TopGroups<BytesRef>[] shardTopGroups = new TopGroups[subSearchers.length];
-      for(int shardIDX=0;shardIDX<subSearchers.length;shardIDX++) {
-        final TopGroupsCollector<?> secondPassCollector = createSecondPassCollector(firstPassGroupingCollectors.get(shardIDX),
-            groupField, mergedTopGroups, groupSort, docSort, docOffset + topNDocs, getMaxScores);
+      for (int shardIDX = 0; shardIDX < subSearchers.length; shardIDX++) {
+        final TopGroupsCollector<?> secondPassCollector =
+            createSecondPassCollector(
+                firstPassGroupingCollectors.get(shardIDX),
+                groupField,
+                mergedTopGroups,
+                groupSort,
+                docSort,
+                docOffset + topNDocs,
+                getMaxScores);
         subSearchers[shardIDX].search(w, secondPassCollector);
         shardTopGroups[shardIDX] = getTopGroups(secondPassCollector, 0);
         if (VERBOSE) {
-          System.out.println(" " + shardTopGroups[shardIDX].groups.length + " shard[" + shardIDX + "] groups:");
-          for(GroupDocs<BytesRef> group : shardTopGroups[shardIDX].groups) {
-            System.out.println("    [" + groupToString(group.groupValue) + "] groupSort=" + Arrays.toString(group.groupSortValues) + " numDocs=" + group.scoreDocs.length);
+          System.out.println(
+              " " + shardTopGroups[shardIDX].groups.length + " shard[" + shardIDX + "] groups:");
+          for (GroupDocs<BytesRef> group : shardTopGroups[shardIDX].groups) {
+            System.out.println(
+                "    ["
+                    + groupToString(group.groupValue)
+                    + "] groupSort="
+                    + Arrays.toString(group.groupSortValues)
+                    + " numDocs="
+                    + group.scoreDocs.length);
           }
         }
       }
 
-      TopGroups<BytesRef> mergedGroups = TopGroups.merge(shardTopGroups, groupSort, docSort, docOffset, topNDocs, TopGroups.ScoreMergeMode.None);
+      TopGroups<BytesRef> mergedGroups =
+          TopGroups.merge(
+              shardTopGroups,
+              groupSort,
+              docSort,
+              docOffset,
+              topNDocs,
+              TopGroups.ScoreMergeMode.None);
       if (VERBOSE) {
         System.out.println(" " + mergedGroups.groups.length + " merged groups:");
-        for(GroupDocs<BytesRef> group : mergedGroups.groups) {
-          System.out.println("    [" + groupToString(group.groupValue) + "] groupSort=" + Arrays.toString(group.groupSortValues)  + " numDocs=" + group.scoreDocs.length);
+        for (GroupDocs<BytesRef> group : mergedGroups.groups) {
+          System.out.println(
+              "    ["
+                  + groupToString(group.groupValue)
+                  + "] groupSort="
+                  + Arrays.toString(group.groupSortValues)
+                  + " numDocs="
+                  + group.scoreDocs.length);
         }
       }
       return mergedGroups;
@@ -1228,21 +1492,39 @@ public class TestGrouping extends LuceneTestCase {
     }
   }
 
-  private void assertEquals(int[] docIDtoID, TopGroups<BytesRef> expected, TopGroups<BytesRef> actual, boolean verifyGroupValues, boolean verifyTotalGroupCount, boolean idvBasedImplsUsed) {
+  private void assertEquals(
+      int[] docIDtoID,
+      TopGroups<BytesRef> expected,
+      TopGroups<BytesRef> actual,
+      boolean verifyGroupValues,
+      boolean verifyTotalGroupCount,
+      boolean idvBasedImplsUsed) {
     if (expected == null) {
       assertNull(actual);
       return;
     }
     assertNotNull(actual);
 
-    assertEquals("expected.groups.length != actual.groups.length", expected.groups.length, actual.groups.length);
-    assertEquals("expected.totalHitCount != actual.totalHitCount", expected.totalHitCount, actual.totalHitCount);
-    assertEquals("expected.totalGroupedHitCount != actual.totalGroupedHitCount", expected.totalGroupedHitCount, actual.totalGroupedHitCount);
+    assertEquals(
+        "expected.groups.length != actual.groups.length",
+        expected.groups.length,
+        actual.groups.length);
+    assertEquals(
+        "expected.totalHitCount != actual.totalHitCount",
+        expected.totalHitCount,
+        actual.totalHitCount);
+    assertEquals(
+        "expected.totalGroupedHitCount != actual.totalGroupedHitCount",
+        expected.totalGroupedHitCount,
+        actual.totalGroupedHitCount);
     if (expected.totalGroupCount != null && verifyTotalGroupCount) {
-      assertEquals("expected.totalGroupCount != actual.totalGroupCount", expected.totalGroupCount, actual.totalGroupCount);
+      assertEquals(
+          "expected.totalGroupCount != actual.totalGroupCount",
+          expected.totalGroupCount,
+          actual.totalGroupCount);
     }
 
-    for(int groupIDX=0;groupIDX<expected.groups.length;groupIDX++) {
+    for (int groupIDX = 0; groupIDX < expected.groups.length; groupIDX++) {
       if (VERBOSE) {
         System.out.println("  check groupIDX=" + groupIDX);
       }
@@ -1258,7 +1540,6 @@ public class TestGrouping extends LuceneTestCase {
         } else {
           assertEquals(expectedGroup.groupValue, actualGroup.groupValue);
         }
-
       }
       assertArrayEquals(expectedGroup.groupSortValues, actualGroup.groupSortValues);
 
@@ -1270,10 +1551,11 @@ public class TestGrouping extends LuceneTestCase {
       final ScoreDoc[] actualFDs = actualGroup.scoreDocs;
 
       assertEquals(expectedFDs.length, actualFDs.length);
-      for(int docIDX=0;docIDX<expectedFDs.length;docIDX++) {
+      for (int docIDX = 0; docIDX < expectedFDs.length; docIDX++) {
         final FieldDoc expectedFD = (FieldDoc) expectedFDs[docIDX];
         final FieldDoc actualFD = (FieldDoc) actualFDs[docIDX];
-        //System.out.println("  actual doc=" + docIDtoID[actualFD.doc] + " score=" + actualFD.score);
+        // System.out.println("  actual doc=" + docIDtoID[actualFD.doc] + " score=" +
+        // actualFD.score);
         assertEquals(expectedFD.doc, docIDtoID[actualFD.doc]);
         assertArrayEquals(expectedFD.fields, actualFD.fields);
       }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java
index d0c0551..bdaa12a 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java
@@ -16,6 +16,9 @@
  */
 package org.apache.lucene.search.grouping;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -37,10 +40,6 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.mutable.MutableValueStr;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
 public class TestGroupingSearch extends LuceneTestCase {
 
   // Tests some very basic usages...
@@ -52,10 +51,11 @@ public class TestGroupingSearch extends LuceneTestCase {
     customType.setStored(true);
 
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     boolean canUseIDV = true;
     List<Document> documents = new ArrayList<>();
     // 0
@@ -122,7 +122,8 @@ public class TestGroupingSearch extends LuceneTestCase {
     Sort groupSort = Sort.RELEVANCE;
     GroupingSearch groupingSearch = createRandomGroupingSearch(groupField, groupSort, 5, canUseIDV);
 
-    TopGroups<?> groups = groupingSearch.search(indexSearcher, new TermQuery(new Term("content", "random")), 0, 10);
+    TopGroups<?> groups =
+        groupingSearch.search(indexSearcher, new TermQuery(new Term("content", "random")), 0, 10);
 
     assertEquals(7, groups.totalHitCount);
     assertEquals(7, groups.totalGroupedHitCount);
@@ -160,13 +161,14 @@ public class TestGroupingSearch extends LuceneTestCase {
 
     Query lastDocInBlock = new TermQuery(new Term("groupend", "x"));
     groupingSearch = new GroupingSearch(lastDocInBlock);
-    groups = groupingSearch.search(indexSearcher, new TermQuery(new Term("content", "random")), 0, 10);
+    groups =
+        groupingSearch.search(indexSearcher, new TermQuery(new Term("content", "random")), 0, 10);
 
     assertEquals(7, groups.totalHitCount);
     assertEquals(7, groups.totalGroupedHitCount);
     assertEquals(4, groups.totalGroupCount.longValue());
     assertEquals(4, groups.groups.length);
-    
+
     indexSearcher.getIndexReader().close();
     dir.close();
   }
@@ -201,7 +203,8 @@ public class TestGroupingSearch extends LuceneTestCase {
     }
   }
 
-  private GroupingSearch createRandomGroupingSearch(String groupField, Sort groupSort, int docsInGroup, boolean canUseIDV) {
+  private GroupingSearch createRandomGroupingSearch(
+      String groupField, Sort groupSort, int docsInGroup, boolean canUseIDV) {
     GroupingSearch groupingSearch;
     if (random().nextBoolean()) {
       ValueSource vs = new BytesRefFieldSource(groupField);
@@ -222,10 +225,11 @@ public class TestGroupingSearch extends LuceneTestCase {
 
   public void testSetAllGroups() throws Exception {
     Directory dir = newDirectory();
-    RandomIndexWriter w = new RandomIndexWriter(
-        random(),
-        dir,
-        newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
+    RandomIndexWriter w =
+        new RandomIndexWriter(
+            random(),
+            dir,
+            newIndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(newLogMergePolicy()));
     Document doc = new Document();
     doc.add(newField("group", "foo", StringField.TYPE_NOT_STORED));
     doc.add(new SortedDocValuesField("group", new BytesRef("foo")));
@@ -238,7 +242,7 @@ public class TestGroupingSearch extends LuceneTestCase {
     gs.setAllGroups(true);
     TopGroups<?> groups = gs.search(indexSearcher, new TermQuery(new Term("group", "foo")), 0, 10);
     assertEquals(1, groups.totalHitCount);
-    //assertEquals(1, groups.totalGroupCount.intValue());
+    // assertEquals(1, groups.totalGroupCount.intValue());
     assertEquals(1, groups.totalGroupedHitCount);
     assertEquals(1, gs.getAllMatchingGroups().size());
     indexSearcher.getIndexReader().close();
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeFactory.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeFactory.java
index 0677631..70c1d94 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeFactory.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeFactory.java
@@ -33,7 +33,5 @@ public class TestLongRangeFactory extends LuceneTestCase {
     assertEquals(new LongRange(30, 40), factory.getRange(35, scratch));
     assertEquals(new LongRange(50, Long.MAX_VALUE), factory.getRange(50, scratch));
     assertEquals(new LongRange(50, Long.MAX_VALUE), factory.getRange(500, scratch));
-
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeGroupSelector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeGroupSelector.java
index 7384a56..083bb5c 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeGroupSelector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestLongRangeGroupSelector.java
@@ -42,8 +42,8 @@ public class TestLongRangeGroupSelector extends BaseGroupSelectorTestCase<LongRa
 
   @Override
   protected GroupSelector<LongRange> getGroupSelector() {
-    return new LongRangeGroupSelector(LongValuesSource.fromLongField("long"),
-        new LongRangeFactory(100, 100, 900));
+    return new LongRangeGroupSelector(
+        LongValuesSource.fromLongField("long"), new LongRangeFactory(100, 100, 900));
   }
 
   @Override
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTermGroupSelector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTermGroupSelector.java
index e55fd64..9249d45 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTermGroupSelector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTermGroupSelector.java
@@ -35,7 +35,7 @@ public class TestTermGroupSelector extends BaseGroupSelectorTestCase<BytesRef> {
   @Override
   protected void addGroupField(Document document, int id) {
     if (rarely()) {
-      return;   // missing value
+      return; // missing value
     }
     String groupValue = "group" + random().nextInt(10);
     document.add(new SortedDocValuesField("groupField", new BytesRef(groupValue)));
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTopGroups.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTopGroups.java
index 6ba5ba1..c547525 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTopGroups.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestTopGroups.java
@@ -104,56 +104,87 @@ public class TestTopGroups extends LuceneTestCase {
 
     final TopGroups<String> shard1TopGroups;
     {
-      final GroupDocs<String> group1 = haveBlueWhale
-          ? createSingletonGroupDocs(blueGroupValue, new Object[] { blueWhaleSize }, 1 /* docId */, blueWhaleScore, 0 /* shardIndex */)
-              : createEmptyGroupDocs(blueGroupValue, new Object[] { blueWhaleSize });
-
-      final GroupDocs<String> group2 = haveRedAnt
-          ? createSingletonGroupDocs(redGroupValue, new Object[] { redAntSize }, 2 /* docId */, redAntScore, 0 /* shardIndex */)
-              : createEmptyGroupDocs(redGroupValue, new Object[] { redAntSize });
-
-      shard1TopGroups = new TopGroups<String>(
-          sort.getSort() /* groupSort */,
-          sort.getSort() /* withinGroupSort */,
-          group1.scoreDocs.length + group2.scoreDocs.length /* totalHitCount */,
-          group1.scoreDocs.length + group2.scoreDocs.length /* totalGroupedHitCount */,
-          combineGroupDocs(group1, group2) /* groups */,
-          (haveBlueWhale ? blueWhaleScore : (haveRedAnt ? redAntScore : Float.NaN)) /* maxScore */);
+      final GroupDocs<String> group1 =
+          haveBlueWhale
+              ? createSingletonGroupDocs(
+                  blueGroupValue,
+                  new Object[] {blueWhaleSize},
+                  1 /* docId */,
+                  blueWhaleScore,
+                  0 /* shardIndex */)
+              : createEmptyGroupDocs(blueGroupValue, new Object[] {blueWhaleSize});
+
+      final GroupDocs<String> group2 =
+          haveRedAnt
+              ? createSingletonGroupDocs(
+                  redGroupValue,
+                  new Object[] {redAntSize},
+                  2 /* docId */,
+                  redAntScore,
+                  0 /* shardIndex */)
+              : createEmptyGroupDocs(redGroupValue, new Object[] {redAntSize});
+
+      shard1TopGroups =
+          new TopGroups<String>(
+              sort.getSort() /* groupSort */,
+              sort.getSort() /* withinGroupSort */,
+              group1.scoreDocs.length + group2.scoreDocs.length /* totalHitCount */,
+              group1.scoreDocs.length + group2.scoreDocs.length /* totalGroupedHitCount */,
+              combineGroupDocs(group1, group2) /* groups */,
+              (haveBlueWhale
+                  ? blueWhaleScore
+                  : (haveRedAnt ? redAntScore : Float.NaN)) /* maxScore */);
     }
 
     final TopGroups<String> shard2TopGroups;
     {
-      final GroupDocs<String> group1 = haveBlueDragonfly
-          ? createSingletonGroupDocs(blueGroupValue, new Object[] { blueDragonflySize }, 3 /* docId */, blueDragonflyScore, 1 /* shardIndex */)
-              : createEmptyGroupDocs(blueGroupValue, new Object[] { blueDragonflySize });
-
-      final GroupDocs<String> group2 = haveRedSquirrel
-      ? createSingletonGroupDocs(redGroupValue, new Object[] { redSquirrelSize }, 4 /* docId */, redSquirrelScore, 1 /* shardIndex */)
-          : createEmptyGroupDocs(redGroupValue, new Object[] { redSquirrelSize });
-
-      shard2TopGroups = new TopGroups<String>(
-          sort.getSort() /* groupSort */,
-          sort.getSort() /* withinGroupSort */,
-          group1.scoreDocs.length + group2.scoreDocs.length /* totalHitCount */,
-          group1.scoreDocs.length + group2.scoreDocs.length /* totalGroupedHitCount */,
-          combineGroupDocs(group1, group2) /* groups */,
-          (haveRedSquirrel ? redSquirrelScore : (haveBlueDragonfly ? blueDragonflyScore : Float.NaN)) /* maxScore */);
+      final GroupDocs<String> group1 =
+          haveBlueDragonfly
+              ? createSingletonGroupDocs(
+                  blueGroupValue,
+                  new Object[] {blueDragonflySize},
+                  3 /* docId */,
+                  blueDragonflyScore,
+                  1 /* shardIndex */)
+              : createEmptyGroupDocs(blueGroupValue, new Object[] {blueDragonflySize});
+
+      final GroupDocs<String> group2 =
+          haveRedSquirrel
+              ? createSingletonGroupDocs(
+                  redGroupValue,
+                  new Object[] {redSquirrelSize},
+                  4 /* docId */,
+                  redSquirrelScore,
+                  1 /* shardIndex */)
+              : createEmptyGroupDocs(redGroupValue, new Object[] {redSquirrelSize});
+
+      shard2TopGroups =
+          new TopGroups<String>(
+              sort.getSort() /* groupSort */,
+              sort.getSort() /* withinGroupSort */,
+              group1.scoreDocs.length + group2.scoreDocs.length /* totalHitCount */,
+              group1.scoreDocs.length + group2.scoreDocs.length /* totalGroupedHitCount */,
+              combineGroupDocs(group1, group2) /* groups */,
+              (haveRedSquirrel
+                  ? redSquirrelScore
+                  : (haveBlueDragonfly ? blueDragonflyScore : Float.NaN)) /* maxScore */);
     }
 
-    final TopGroups<String> mergedTopGroups = TopGroups.<String>merge(
-        combineTopGroups(shard1TopGroups, shard2TopGroups),
-        sort /* groupSort */,
-        sort /* docSort */,
-        0 /* docOffset */,
-        2 /* docTopN */,
-        TopGroups.ScoreMergeMode.None);
+    final TopGroups<String> mergedTopGroups =
+        TopGroups.<String>merge(
+            combineTopGroups(shard1TopGroups, shard2TopGroups),
+            sort /* groupSort */,
+            sort /* docSort */,
+            0 /* docOffset */,
+            2 /* docTopN */,
+            TopGroups.ScoreMergeMode.None);
     assertNotNull(mergedTopGroups);
 
     final int expectedCount =
-        (haveBlueWhale     ? 1 : 0) +
-        (haveRedAnt        ? 1 : 0) +
-        (haveBlueDragonfly ? 1 : 0) +
-        (haveRedSquirrel   ? 1 : 0);
+        (haveBlueWhale ? 1 : 0)
+            + (haveRedAnt ? 1 : 0)
+            + (haveBlueDragonfly ? 1 : 0)
+            + (haveRedSquirrel ? 1 : 0);
 
     assertEquals(expectedCount, mergedTopGroups.totalHitCount);
     assertEquals(expectedCount, mergedTopGroups.totalGroupedHitCount);
@@ -173,11 +204,13 @@ public class TestTopGroups extends LuceneTestCase {
     }
 
     final float expectedMaxScore =
-        (haveBlueWhale ? blueWhaleScore
-            : (haveRedSquirrel ? redSquirrelScore
-                : (haveBlueDragonfly ? blueDragonflyScore
-                    : (haveRedAnt ? redAntScore
-                        : Float.NaN))));
+        (haveBlueWhale
+            ? blueWhaleScore
+            : (haveRedSquirrel
+                ? redSquirrelScore
+                : (haveBlueDragonfly
+                    ? blueDragonflyScore
+                    : (haveRedAnt ? redAntScore : Float.NaN))));
     checkMaxScore(expectedMaxScore, mergedTopGroups.maxScore);
   }
 
@@ -191,41 +224,43 @@ public class TestTopGroups extends LuceneTestCase {
 
   // helper methods
 
-  private static GroupDocs<String> createEmptyGroupDocs(String groupValue, Object[] groupSortValues) {
-    return new  GroupDocs<String>(
+  private static GroupDocs<String> createEmptyGroupDocs(
+      String groupValue, Object[] groupSortValues) {
+    return new GroupDocs<String>(
         Float.NaN /* score */,
         Float.NaN /* maxScore */,
         new TotalHits(0, TotalHits.Relation.EQUAL_TO),
         new ScoreDoc[0],
         groupValue,
         groupSortValues);
-    }
+  }
 
-  private static GroupDocs<String> createSingletonGroupDocs(String groupValue, Object[] groupSortValues,
-      int docId, float docScore, int shardIndex) {
-    return new  GroupDocs<String>(
+  private static GroupDocs<String> createSingletonGroupDocs(
+      String groupValue, Object[] groupSortValues, int docId, float docScore, int shardIndex) {
+    return new GroupDocs<String>(
         Float.NaN /* score */,
         docScore /* maxScore */,
         new TotalHits(1, TotalHits.Relation.EQUAL_TO),
-        new ScoreDoc[] { new ScoreDoc(docId, docScore, shardIndex) },
+        new ScoreDoc[] {new ScoreDoc(docId, docScore, shardIndex)},
         groupValue,
         groupSortValues);
-    }
+  }
 
-  private static GroupDocs<String>[] combineGroupDocs(GroupDocs<String> group0, GroupDocs<String> group1) {
-    @SuppressWarnings({"unchecked","rawtypes"})
+  private static GroupDocs<String>[] combineGroupDocs(
+      GroupDocs<String> group0, GroupDocs<String> group1) {
+    @SuppressWarnings({"unchecked", "rawtypes"})
     final GroupDocs<String>[] groups = new GroupDocs[2];
     groups[0] = group0;
     groups[1] = group1;
     return groups;
   }
 
-  private static TopGroups<String>[] combineTopGroups(TopGroups<String> group0, TopGroups<String> group1) {
-    @SuppressWarnings({"unchecked","rawtypes"})
+  private static TopGroups<String>[] combineTopGroups(
+      TopGroups<String> group0, TopGroups<String> group1) {
+    @SuppressWarnings({"unchecked", "rawtypes"})
     final TopGroups<String>[] groups = new TopGroups[2];
     groups[0] = group0;
     groups[1] = group1;
     return groups;
   }
-
 }
diff --git a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestValueSourceGroupSelector.java b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestValueSourceGroupSelector.java
index 9e652b6..0c62169 100644
--- a/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestValueSourceGroupSelector.java
+++ b/lucene/grouping/src/test/org/apache/lucene/search/grouping/TestValueSourceGroupSelector.java
@@ -18,7 +18,6 @@
 package org.apache.lucene.search.grouping;
 
 import java.util.HashMap;
-
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.SortedDocValuesField;
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/AbstractHandler.java b/lucene/luke/src/java/org/apache/lucene/luke/app/AbstractHandler.java
index bca88f1..5abd9d9 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/AbstractHandler.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/AbstractHandler.java
@@ -20,7 +20,6 @@ package org.apache.lucene.luke.app;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.luke.util.LoggerFactory;
 
@@ -45,5 +44,4 @@ public abstract class AbstractHandler<T extends Observer> {
   }
 
   protected abstract void notifyOne(T observer);
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryHandler.java b/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryHandler.java
index ec4e7e5..3d2de05 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryHandler.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryHandler.java
@@ -19,7 +19,6 @@ package org.apache.lucene.luke.app;
 
 import java.io.IOException;
 import java.util.Objects;
-
 import org.apache.lucene.luke.app.desktop.util.MessageUtils;
 import org.apache.lucene.luke.models.LukeException;
 import org.apache.lucene.luke.models.util.IndexUtils;
@@ -60,7 +59,8 @@ public final class DirectoryHandler extends AbstractHandler<DirectoryObserver> {
     try {
       dir = IndexUtils.openDirectory(indexPath, dirImpl);
     } catch (IOException e) {
-      throw new LukeException(MessageUtils.getLocalizedMessage("openindex.message.index_path_invalid", indexPath), e);
+      throw new LukeException(
+          MessageUtils.getLocalizedMessage("openindex.message.index_path_invalid", indexPath), e);
     }
 
     state = new LukeStateImpl();
@@ -108,5 +108,4 @@ public final class DirectoryHandler extends AbstractHandler<DirectoryObserver> {
       return dir;
     }
   }
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryObserver.java b/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryObserver.java
index 6437115..83afae0 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryObserver.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/DirectoryObserver.java
@@ -23,5 +23,4 @@ public interface DirectoryObserver extends Observer {
   void openDirectory(LukeState state);
 
   void closeDirectory();
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/IndexHandler.java b/lucene/luke/src/java/org/apache/lucene/luke/app/IndexHandler.java
index 885c34a..f3fc635 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/IndexHandler.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/IndexHandler.java
@@ -19,7 +19,6 @@ package org.apache.lucene.luke.app;
 
 import java.lang.invoke.MethodHandles;
 import java.util.Objects;
-
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.luke.app.desktop.util.MessageUtils;
@@ -57,7 +56,12 @@ public final class IndexHandler extends AbstractHandler<IndexObserver> {
     open(indexPath, dirImpl, false, false, false);
   }
 
-  public void open(String indexPath, String dirImpl, boolean readOnly, boolean useCompound, boolean keepAllCommits) {
+  public void open(
+      String indexPath,
+      String dirImpl,
+      boolean readOnly,
+      boolean useCompound,
+      boolean keepAllCommits) {
     Objects.requireNonNull(indexPath);
 
     if (indexOpened()) {
@@ -69,7 +73,8 @@ public final class IndexHandler extends AbstractHandler<IndexObserver> {
       reader = IndexUtils.openIndex(indexPath, dirImpl);
     } catch (Exception e) {
       log.error("Error opening index", e);
-      throw new LukeException(MessageUtils.getLocalizedMessage("openindex.message.index_path_invalid", indexPath), e);
+      throw new LukeException(
+          MessageUtils.getLocalizedMessage("openindex.message.index_path_invalid", indexPath), e);
     }
 
     state = new LukeStateImpl();
@@ -96,7 +101,12 @@ public final class IndexHandler extends AbstractHandler<IndexObserver> {
 
   public void reOpen() {
     close();
-    open(state.getIndexPath(), state.getDirImpl(), state.readOnly(), state.useCompound(), state.keepAllCommits());
+    open(
+        state.getIndexPath(),
+        state.getDirImpl(),
+        state.readOnly(),
+        state.useCompound(),
+        state.keepAllCommits());
   }
 
   public LukeState getState() {
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/IndexObserver.java b/lucene/luke/src/java/org/apache/lucene/luke/app/IndexObserver.java
index 599b109..21265ae 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/IndexObserver.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/IndexObserver.java
@@ -23,5 +23,4 @@ public interface IndexObserver extends Observer {
   void openIndex(LukeState state);
 
   void closeIndex();
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/LukeState.java b/lucene/luke/src/java/org/apache/lucene/luke/app/LukeState.java
index 33ca829..492efd3 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/LukeState.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/LukeState.java
@@ -21,9 +21,7 @@ import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.store.Directory;
 
-/**
- * Holder for current index/directory.
- */
+/** Holder for current index/directory. */
 public interface LukeState {
 
   String getIndexPath();
@@ -53,5 +51,4 @@ public interface LukeState {
   default boolean hasDirectoryReader() {
     return getIndexReader() instanceof DirectoryReader;
   }
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/Observer.java b/lucene/luke/src/java/org/apache/lucene/luke/app/Observer.java
index 290865b..16d35a7 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/Observer.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/Observer.java
@@ -18,5 +18,4 @@
 package org.apache.lucene.luke.app;
 
 /** Marker interface for observers */
-public interface Observer {
-}
+public interface Observer {}
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/LukeMain.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/LukeMain.java
index fae52f2..78c5254 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/LukeMain.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/LukeMain.java
@@ -17,13 +17,14 @@
 
 package org.apache.lucene.luke.app.desktop;
 
-import javax.swing.JFrame;
-import javax.swing.UIManager;
+import static org.apache.lucene.luke.app.desktop.util.ExceptionHandler.handle;
+
 import java.awt.GraphicsEnvironment;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.FileSystems;
-
+import javax.swing.JFrame;
+import javax.swing.UIManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.lucene.luke.app.desktop.components.LukeWindowProvider;
 import org.apache.lucene.luke.app.desktop.components.dialog.menubar.OpenIndexDialogFactory;
@@ -32,20 +33,22 @@ import org.apache.lucene.luke.app.desktop.util.FontUtils;
 import org.apache.lucene.luke.app.desktop.util.MessageUtils;
 import org.apache.lucene.luke.util.LoggerFactory;
 
-import static org.apache.lucene.luke.app.desktop.util.ExceptionHandler.handle;
-
 /** Entry class for desktop Luke */
 public class LukeMain {
 
-  public static final String LOG_FILE = System.getProperty("user.home") +
-      FileSystems.getDefault().getSeparator() + ".luke.d" +
-      FileSystems.getDefault().getSeparator() + "luke.log";
+  public static final String LOG_FILE =
+      System.getProperty("user.home")
+          + FileSystems.getDefault().getSeparator()
+          + ".luke.d"
+          + FileSystems.getDefault().getSeparator()
+          + "luke.log";
 
   static {
     LoggerFactory.initGuiLogging(LOG_FILE);
   }
+
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-  
+
   private static JFrame frame;
 
   public static JFrame getOwnerFrame() {
@@ -55,9 +58,7 @@ public class LukeMain {
   private static void createAndShowGUI() {
     // uncaught error handler
     MessageBroker messageBroker = MessageBroker.getInstance();
-    Thread.setDefaultUncaughtExceptionHandler((thread, cause) ->
-        handle(cause, messageBroker)
-    );
+    Thread.setDefaultUncaughtExceptionHandler((thread, cause) -> handle(cause, messageBroker));
 
     try {
       frame = new LukeWindowProvider().get();
@@ -68,9 +69,12 @@ public class LukeMain {
 
       // show open index dialog
       OpenIndexDialogFactory openIndexDialogFactory = OpenIndexDialogFactory.getInstance();
-      new DialogOpener<>(openIndexDialogFactory).open(MessageUtils.getLocalizedMessage("openindex.dialog.title"), 600, 420,
-          (factory) -> {
-          });
+      new DialogOpener<>(openIndexDialogFactory)
+          .open(
+              MessageUtils.getLocalizedMessage("openindex.dialog.title"),
+              600,
+              420,
+              (factory) -> {});
     } catch (IOException e) {
       messageBroker.showUnknownErrorMessage();
       log.error("Cannot initialize components.", e);
@@ -79,7 +83,8 @@ public class LukeMain {
 
   public static void main(String[] args) throws Exception {
     String lookAndFeelClassName = UIManager.getSystemLookAndFeelClassName();
-    if (!lookAndFeelClassName.contains("AquaLookAndFeel") && !lookAndFeelClassName.contains("PlasticXPLookAndFeel")) {
+    if (!lookAndFeelClassName.contains("AquaLookAndFeel")
+        && !lookAndFeelClassName.contains("PlasticXPLookAndFeel")) {
       // may be running on linux platform
       lookAndFeelClassName = "javax.swing.plaf.metal.MetalLookAndFeel";
     }
@@ -89,6 +94,5 @@ public class LukeMain {
     genv.registerFont(FontUtils.createElegantIconFont());
 
     javax.swing.SwingUtilities.invokeLater(LukeMain::createAndShowGUI);
-
   }
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/MessageBroker.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/MessageBroker.java
index 9609a2f..56c791b 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/MessageBroker.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/MessageBroker.java
@@ -61,5 +61,4 @@ public class MessageBroker {
 
     void clearStatusMessage();
   }
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/Preferences.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/Preferences.java
index b0df660..982e4d8 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/Preferences.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/Preferences.java
@@ -38,7 +38,13 @@ public interface Preferences {
 
   boolean isKeepAllCommits();
 
-  void setIndexOpenerPrefs(boolean readOnly, String dirImpl, boolean noReader, boolean useCompound, boolean keepAllCommits) throws IOException;
+  void setIndexOpenerPrefs(
+      boolean readOnly,
+      String dirImpl,
+      boolean noReader,
+      boolean useCompound,
+      boolean keepAllCommits)
+      throws IOException;
 
   ColorTheme getColorTheme();
 
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesFactory.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesFactory.java
index 2502553..b043e8f 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesFactory.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesFactory.java
@@ -24,11 +24,10 @@ public class PreferencesFactory {
 
   private static Preferences prefs;
 
-  public synchronized static Preferences getInstance() throws IOException {
+  public static synchronized Preferences getInstance() throws IOException {
     if (prefs == null) {
       prefs = new PreferencesImpl();
     }
     return prefs;
   }
-
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesImpl.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesImpl.java
index ebf78c5..47d6331 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesImpl.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/PreferencesImpl.java
@@ -23,7 +23,6 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
-
 import org.apache.lucene.luke.app.desktop.util.inifile.IniFile;
 import org.apache.lucene.luke.app.desktop.util.inifile.SimpleIniFile;
 import org.apache.lucene.store.FSDirectory;
@@ -31,14 +30,14 @@ import org.apache.lucene.store.FSDirectory;
 /** Default implementation of {@link Preferences} */
 public final class PreferencesImpl implements Preferences {
 
-  private static final String CONFIG_DIR = System.getProperty("user.home") + FileSystems.getDefault().getSeparator() + ".luke.d";
+  private static final String CONFIG_DIR =
+      System.getProperty("user.home") + FileSystems.getDefault().getSeparator() + ".luke.d";
   private static final String INIT_FILE = "luke.ini";
   private static final String HISTORY_FILE = "history";
   private static final int MAX_HISTORY = 10;
 
   private final IniFile ini = new SimpleIniFile();
 
-
   private final List<String> history = new ArrayList<>();
 
   public PreferencesImpl() throws IOException {
@@ -61,7 +60,6 @@ public final class PreferencesImpl implements Preferences {
       List<String> allHistory = Files.readAllLines(histFile);
       history.addAll(allHistory.subList(0, Math.min(MAX_HISTORY, allHistory.size())));
     }
-
   }
 
   public List<String> getHistory() {
@@ -128,7 +126,13 @@ public final class PreferencesImpl implements Preferences {
   }
 
   @Override
-  public void setIndexOpenerPrefs(boolean readOnly, String dirImpl, boolean noReader, boolean useCompound, boolean keepAllCommits) throws IOException {
+  public void setIndexOpenerPrefs(
+      boolean readOnly,
+      String dirImpl,
+      boolean noReader,
+      boolean useCompound,
+      boolean keepAllCommits)
+      throws IOException {
     ini.put("opener", "readOnly", readOnly);
     ini.put("opener", "dirImpl", dirImpl);
     ini.put("opener", "noReader", noReader);
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisPanelProvider.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisPanelProvider.java
index 864dfcd..b031437 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisPanelProvider.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisPanelProvider.java
@@ -17,16 +17,6 @@
 
 package org.apache.lucene.luke.app.desktop.components;
 
-import javax.swing.BorderFactory;
-import javax.swing.ButtonGroup;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JScrollPane;
-import javax.swing.JSplitPane;
-import javax.swing.JTextArea;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.FlowLayout;
@@ -39,7 +29,16 @@ import java.io.IOException;
 import java.util.Objects;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.custom.CustomAnalyzer;
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
@@ -126,16 +125,21 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
 
     operatorRegistry.register(AnalysisTabOperator.class, this);
 
-    operatorRegistry.get(PresetAnalyzerPanelOperator.class).ifPresent(operator -> {
-      // Scanning all Analyzer types will take time...
-      ExecutorService executorService =
-          Executors.newFixedThreadPool(1, new NamedThreadFactory("load-preset-analyzer-types"));
-      executorService.execute(() -> {
-        operator.setPresetAnalyzers(analysisModel.getPresetAnalyzerTypes());
-        operator.setSelectedAnalyzer(analysisModel.currentAnalyzer().getClass());
-      });
-      executorService.shutdown();
-    });
+    operatorRegistry
+        .get(PresetAnalyzerPanelOperator.class)
+        .ifPresent(
+            operator -> {
+              // Scanning all Analyzer types will take time...
+              ExecutorService executorService =
+                  Executors.newFixedThreadPool(
+                      1, new NamedThreadFactory("load-preset-analyzer-types"));
+              executorService.execute(
+                  () -> {
+                    operator.setPresetAnalyzers(analysisModel.getPresetAnalyzerTypes());
+                    operator.setSelectedAnalyzer(analysisModel.currentAnalyzer().getClass());
+                  });
+              executorService.shutdown();
+            });
   }
 
   public JPanel get() {
@@ -143,7 +147,8 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
     panel.setOpaque(false);
     panel.setBorder(BorderFactory.createLineBorder(Color.gray));
 
-    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
+    JSplitPane splitPane =
+        new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
     splitPane.setOpaque(false);
     splitPane.setDividerLocation(320);
     panel.add(splitPane);
@@ -194,16 +199,18 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
 
     JPanel analyzerName = new JPanel(new FlowLayout(FlowLayout.LEADING, 10, 2));
     analyzerName.setOpaque(false);
-    analyzerName.add(new JLabel(MessageUtils.getLocalizedMessage("analysis.label.selected_analyzer")));
+    analyzerName.add(
+        new JLabel(MessageUtils.getLocalizedMessage("analysis.label.selected_analyzer")));
     analyzerNameLbl.setText(analysisModel.currentAnalyzer().getClass().getName());
     analyzerName.add(analyzerNameLbl);
     showChainLbl.setText(MessageUtils.getLocalizedMessage("analysis.label.show_chain"));
-    showChainLbl.addMouseListener(new MouseAdapter() {
-      @Override
-      public void mouseClicked(MouseEvent e) {
-        listeners.showAnalysisChain(e);
-      }
-    });
+    showChainLbl.addMouseListener(
+        new MouseAdapter() {
+          @Override
+          public void mouseClicked(MouseEvent e) {
+            listeners.showAnalysisChain(e);
+          }
+        });
     showChainLbl.setVisible(analysisModel.currentAnalyzer() instanceof CustomAnalyzer);
     analyzerName.add(FontUtils.toLinkText(showChainLbl));
     inner1.add(analyzerName, BorderLayout.PAGE_START);
@@ -217,8 +224,10 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
     inputArea.setText(MessageUtils.getLocalizedMessage("analysis.textarea.prompt"));
     input.add(new JScrollPane(inputArea));
 
-    JButton executeBtn = new JButton(FontUtils.elegantIconHtml("&#xe007;",
-        MessageUtils.getLocalizedMessage("analysis.button.test")));
+    JButton executeBtn =
+        new JButton(
+            FontUtils.elegantIconHtml(
+                "&#xe007;", MessageUtils.getLocalizedMessage("analysis.button.test")));
     executeBtn.setFont(StyleConstants.FONT_BUTTON_LARGE);
     executeBtn.setMargin(new Insets(3, 3, 3, 3));
     executeBtn.addActionListener(listeners::executeAnalysis);
@@ -233,13 +242,16 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
     JButton clearBtn = new JButton(MessageUtils.getLocalizedMessage("button.clear"));
     clearBtn.setFont(StyleConstants.FONT_BUTTON_LARGE);
     clearBtn.setMargin(new Insets(5, 5, 5, 5));
-    clearBtn.addActionListener(e -> {
-      inputArea.setText("");
-      operatorRegistry.get(SimpleAnalyzeResultPanelOperator.class).ifPresent(
-          SimpleAnalyzeResultPanelOperator::clearTable);
-      operatorRegistry.get(StepByStepAnalyzeResultPanelOperator.class).ifPresent(
-          StepByStepAnalyzeResultPanelOperator::clearTable);
-    });
+    clearBtn.addActionListener(
+        e -> {
+          inputArea.setText("");
+          operatorRegistry
+              .get(SimpleAnalyzeResultPanelOperator.class)
+              .ifPresent(SimpleAnalyzeResultPanelOperator::clearTable);
+          operatorRegistry
+              .get(StepByStepAnalyzeResultPanelOperator.class)
+              .ifPresent(StepByStepAnalyzeResultPanelOperator::clearTable);
+        });
     input.add(clearBtn);
 
     inner1.add(input, BorderLayout.CENTER);
@@ -259,20 +271,26 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
       mainPanel.remove(custom);
       mainPanel.add(preset, BorderLayout.CENTER);
 
-      operatorRegistry.get(PresetAnalyzerPanelOperator.class).ifPresent(operator -> {
-        operator.setPresetAnalyzers(analysisModel.getPresetAnalyzerTypes());
-        operator.setSelectedAnalyzer(analysisModel.currentAnalyzer().getClass());
-      });
+      operatorRegistry
+          .get(PresetAnalyzerPanelOperator.class)
+          .ifPresent(
+              operator -> {
+                operator.setPresetAnalyzers(analysisModel.getPresetAnalyzerTypes());
+                operator.setSelectedAnalyzer(analysisModel.currentAnalyzer().getClass());
+              });
       stepByStepCB.setSelected(false);
       stepByStepCB.setVisible(false);
     } else if (command.equalsIgnoreCase(TYPE_CUSTOM)) {
       mainPanel.remove(preset);
       mainPanel.add(custom, BorderLayout.CENTER);
 
-      operatorRegistry.get(CustomAnalyzerPanelOperator.class).ifPresent(operator -> {
-        operator.setAnalysisModel(analysisModel);
-        operator.resetAnalysisComponents();
-      });
+      operatorRegistry
+          .get(CustomAnalyzerPanelOperator.class)
+          .ifPresent(
+              operator -> {
+                operator.setAnalysisModel(analysisModel);
+                operator.resetAnalysisComponents();
+              });
       stepByStepCB.setVisible(true);
     }
     mainPanel.setVisible(false);
@@ -282,16 +300,20 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
   void executeAnalysis() {
     String text = inputArea.getText();
     if (Objects.isNull(text) || text.isEmpty()) {
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("analysis.message.empry_input"));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage("analysis.message.empry_input"));
     }
 
     lowerPanel.remove(stepByStepResult);
     lowerPanel.add(simpleResult, BorderLayout.CENTER);
 
-    operatorRegistry.get(SimpleAnalyzeResultPanelOperator.class).ifPresent(operator -> {
-      operator.setAnalysisModel(analysisModel);
-      operator.executeAnalysis(text);
-    });
+    operatorRegistry
+        .get(SimpleAnalyzeResultPanelOperator.class)
+        .ifPresent(
+            operator -> {
+              operator.setAnalysisModel(analysisModel);
+              operator.executeAnalysis(text);
+            });
 
     lowerPanel.setVisible(false);
     lowerPanel.setVisible(true);
@@ -300,14 +322,18 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
   void executeAnalysisStepByStep() {
     String text = inputArea.getText();
     if (Objects.isNull(text) || text.isEmpty()) {
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("analysis.message.empry_input"));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage("analysis.message.empry_input"));
     }
     lowerPanel.remove(simpleResult);
     lowerPanel.add(stepByStepResult, BorderLayout.CENTER);
-    operatorRegistry.get(StepByStepAnalyzeResultPanelOperator.class).ifPresent(operator -> {
-      operator.setAnalysisModel(analysisModel);
-      operator.executeAnalysisStepByStep(text);
-    });
+    operatorRegistry
+        .get(StepByStepAnalyzeResultPanelOperator.class)
+        .ifPresent(
+            operator -> {
+              operator.setAnalysisModel(analysisModel);
+              operator.executeAnalysisStepByStep(text);
+            });
 
     lowerPanel.setVisible(false);
     lowerPanel.setVisible(true);
@@ -316,10 +342,14 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
   void showAnalysisChainDialog() {
     if (getCurrentAnalyzer() instanceof CustomAnalyzer) {
       CustomAnalyzer analyzer = (CustomAnalyzer) getCurrentAnalyzer();
-      new DialogOpener<>(analysisChainDialogFactory).open("Analysis chain", 600, 320,
-          (factory) -> {
-            factory.setAnalyzer(analyzer);
-          });
+      new DialogOpener<>(analysisChainDialogFactory)
+          .open(
+              "Analysis chain",
+              600,
+              320,
+              (factory) -> {
+                factory.setAnalyzer(analyzer);
+              });
     }
   }
 
@@ -328,12 +358,15 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
     analysisModel.createAnalyzerFromClassName(analyzerType);
     analyzerNameLbl.setText(analysisModel.currentAnalyzer().getClass().getName());
     showChainLbl.setVisible(false);
-    operatorRegistry.get(AnalyzerTabOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
-    operatorRegistry.get(MLTTabOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
-    operatorRegistry.get(AddDocumentDialogOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(AnalyzerTabOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(MLTTabOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(AddDocumentDialogOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
   }
 
   @Override
@@ -341,12 +374,15 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
     analysisModel.buildCustomAnalyzer(config);
     analyzerNameLbl.setText(analysisModel.currentAnalyzer().getClass().getName());
     showChainLbl.setVisible(true);
-    operatorRegistry.get(AnalyzerTabOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
-    operatorRegistry.get(MLTTabOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
-    operatorRegistry.get(AddDocumentDialogOperator.class).ifPresent(operator ->
-        operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(AnalyzerTabOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(MLTTabOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
+    operatorRegistry
+        .get(AddDocumentDialogOperator.class)
+        .ifPresent(operator -> operator.setAnalyzer(analysisModel.currentAnalyzer()));
   }
 
   @Override
@@ -372,9 +408,6 @@ public final class AnalysisPanelProvider implements AnalysisTabOperator {
       }
     }
 
-    void executeAnalysisStepByStep(ActionEvent e) {
-    }
+    void executeAnalysisStepByStep(ActionEvent e) {}
   }
-
 }
-
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisTabOperator.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisTabOperator.java
index 555f1c0..1ad7d5c 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisTabOperator.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/AnalysisTabOperator.java
@@ -28,6 +28,4 @@ public interface AnalysisTabOperator extends ComponentOperatorRegistry.Component
   void setAnalyzerByCustomConfiguration(CustomAnalyzerConfig config);
 
   Analyzer getCurrentAnalyzer();
-
 }
-
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/CommitsPanelProvider.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/CommitsPanelProvider.java
index d06abcc..8d55855 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/CommitsPanelProvider.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/CommitsPanelProvider.java
@@ -17,6 +17,18 @@
 
 package org.apache.lucene.luke.app.desktop.components;
 
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import javax.swing.BorderFactory;
 import javax.swing.BoxLayout;
 import javax.swing.ButtonGroup;
@@ -32,19 +44,6 @@ import javax.swing.JSplitPane;
 import javax.swing.JTable;
 import javax.swing.JTextArea;
 import javax.swing.ListSelectionModel;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.FlowLayout;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.luke.app.DirectoryHandler;
 import org.apache.lucene.luke.app.DirectoryObserver;
@@ -100,7 +99,8 @@ public final class CommitsPanelProvider {
     panel.setOpaque(false);
     panel.setBorder(BorderFactory.createLineBorder(Color.gray));
 
-    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
+    JSplitPane splitPane =
+        new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
     splitPane.setOpaque(false);
     splitPane.setBorder(BorderFactory.createEmptyBorder());
     splitPane.setDividerLocation(120);
@@ -162,7 +162,11 @@ public final class CommitsPanelProvider {
     userDataTA.setLineWrap(true);
     userDataTA.setWrapStyleWord(true);
     userDataTA.setEditable(false);
-    JScrollPane userDataScroll = new JScrollPane(userDataTA, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+    JScrollPane userDataScroll =
+        new JScrollPane(
+            userDataTA,
+            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
     c1.gridx = 1;
     c1.gridy = 2;
     c1.weightx = 0.5;
@@ -179,7 +183,8 @@ public final class CommitsPanelProvider {
     panel.setOpaque(false);
     panel.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
 
-    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, initFilesPanel(), initSegmentsPanel());
+    JSplitPane splitPane =
+        new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, initFilesPanel(), initSegmentsPanel());
     splitPane.setOpaque(false);
     splitPane.setBorder(BorderFactory.createEmptyBorder());
     splitPane.setDividerLocation(300);
@@ -197,7 +202,12 @@ public final class CommitsPanelProvider {
     header.add(new JLabel(MessageUtils.getLocalizedMessage("commits.label.files")));
     panel.add(header, BorderLayout.PAGE_START);
 
-    TableUtils.setupTable(filesTable, ListSelectionModel.SINGLE_SELECTION, new FilesTableModel(), null, FilesTableModel.Column.FILENAME.getColumnWidth());
+    TableUtils.setupTable(
+        filesTable,
+        ListSelectionModel.SINGLE_SELECTION,
+        new FilesTableModel(),
+        null,
+        FilesTableModel.Column.FILENAME.getColumnWidth());
     panel.add(new JScrollPane(filesTable), BorderLayout.CENTER);
 
     return panel;
@@ -213,7 +223,10 @@ public final class CommitsPanelProvider {
     segments.add(new JLabel(MessageUtils.getLocalizedMessage("commits.label.segments")));
     panel.add(segments);
 
-    TableUtils.setupTable(segmentsTable, ListSelectionModel.SINGLE_SELECTION, new SegmentsTableModel(),
+    TableUtils.setupTable(
+        segmentsTable,
+        ListSelectionModel.SINGLE_SELECTION,
+        new SegmentsTableModel(),
         new MouseAdapter() {
           @Override
           public void mouseClicked(MouseEvent e) {
@@ -241,12 +254,13 @@ public final class CommitsPanelProvider {
     diagRB.setSelected(true);
     diagRB.setEnabled(false);
     diagRB.setOpaque(false);
-    diagRB.addMouseListener(new MouseAdapter() {
-      @Override
-      public void mouseClicked(MouseEvent e) {
-        listeners.showSegmentDetails(e);
-      }
-    });
+    diagRB.addMouseListener(
+        new MouseAdapter() {
+          @Override
+          public void mouseClicked(MouseEvent e) {
+            listeners.showSegmentDetails(e);
+          }
+        });
     buttons.add(diagRB);
 
     attrRB.setText("Attributes");
@@ -254,12 +268,13 @@ public final class CommitsPanelProvider {
     attrRB.setSelected(false);
     attrRB.setEnabled(false);
     attrRB.setOpaque(false);
-    attrRB.addMouseListener(new MouseAdapter() {
-      @Override
-      public void mouseClicked(MouseEvent e) {
-        listeners.showSegmentDetails(e);
-      }
-    });
+    attrRB.addMouseListener(
+        new MouseAdapter() {
+          @Override
+          public void mouseClicked(MouseEvent e) {
+            listeners.showSegmentDetails(e);
+          }
+        });
     buttons.add(attrRB);
 
     codecRB.setText("Codec");
@@ -267,12 +282,13 @@ public final class CommitsPanelProvider {
     codecRB.setSelected(false);
     codecRB.setEnabled(false);
     codecRB.setOpaque(false);
-    codecRB.addMouseListener(new MouseAdapter() {
-      @Override
-      public void mouseClicked(MouseEvent e) {
-        listeners.showSegmentDetails(e);
-      }
-    });
+    codecRB.addMouseListener(
+        new MouseAdapter() {
+          @Override
+          public void mouseClicked(MouseEvent e) {
+            listeners.showSegmentDetails(e);
+          }
+        });
     buttons.add(codecRB);
 
     rbGroup.add(diagRB);
@@ -296,30 +312,55 @@ public final class CommitsPanelProvider {
     segDetailList.setModel(new DefaultListModel<>());
 
     long commitGen = (long) commitGenCombo.getSelectedItem();
-    commitsModel.getCommit(commitGen).ifPresent(commit -> {
-      deletedLbl.setText(String.valueOf(commit.isDeleted()));
-      segCntLbl.setText(String.valueOf(commit.getSegCount()));
-      userDataTA.setText(commit.getUserData());
-    });
+    commitsModel
+        .getCommit(commitGen)
+        .ifPresent(
+            commit -> {
+              deletedLbl.setText(String.valueOf(commit.isDeleted()));
+              segCntLbl.setText(String.valueOf(commit.getSegCount()));
+              userDataTA.setText(commit.getUserData());
+            });
 
     filesTable.setModel(new FilesTableModel(commitsModel.getFiles(commitGen)));
     filesTable.setShowGrid(true);
-    filesTable.getColumnModel().getColumn(FilesTableModel.Column.FILENAME.getIndex()).setPreferredWidth(FilesTableModel.Column.FILENAME.getColumnWidth());
+    filesTable
+        .getColumnModel()
+        .getColumn(FilesTableModel.Column.FILENAME.getIndex())
+        .setPreferredWidth(FilesTableModel.Column.FILENAME.getColumnWidth());
 
     segmentsTable.setModel(new SegmentsTableModel(commitsModel.getSegments(commitGen)));
     segmentsTable.setShowGrid(true);
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.NAME.getIndex()).setPreferredWidth(SegmentsTableModel.Column.NAME.getColumnWidth());
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.MAXDOCS.getIndex()).setPreferredWidth(SegmentsTableModel.Column.MAXDOCS.getColumnWidth());
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.DELS.getIndex()).setPreferredWidth(SegmentsTableModel.Column.DELS.getColumnWidth());
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.DELGEN.getIndex()).setPreferredWidth(SegmentsTableModel.Column.DELGEN.getColumnWidth());
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.VERSION.getIndex()).setPreferredWidth(SegmentsTableModel.Column.VERSION.getColumnWidth());
-    segmentsTable.getColumnModel().getColumn(SegmentsTableModel.Column.CODEC.getIndex()).setPreferredWidth(SegmentsTableModel.Column.CODEC.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.NAME.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.NAME.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.MAXDOCS.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.MAXDOCS.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.DELS.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.DELS.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.DELGEN.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.DELGEN.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.VERSION.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.VERSION.getColumnWidth());
+    segmentsTable
+        .getColumnModel()
+        .getColumn(SegmentsTableModel.Column.CODEC.getIndex())
+        .setPreferredWidth(SegmentsTableModel.Column.CODEC.getColumnWidth());
   }
 
   private void showSegmentDetails() {
     int selectedRow = segmentsTable.getSelectedRow();
-    if (commitGenCombo.getSelectedItem() == null ||
-        selectedRow < 0 || selectedRow >= segmentsTable.getRowCount()) {
+    if (commitGenCombo.getSelectedItem() == null
+        || selectedRow < 0
+        || selectedRow >= segmentsTable.getRowCount()) {
       return;
     }
 
@@ -328,7 +369,8 @@ public final class CommitsPanelProvider {
     codecRB.setEnabled(true);
 
     long commitGen = (long) commitGenCombo.getSelectedItem();
-    String segName = (String) segmentsTable.getValueAt(selectedRow, SegmentsTableModel.Column.NAME.getIndex());
+    String segName =
+        (String) segmentsTable.getValueAt(selectedRow, SegmentsTableModel.Column.NAME.getIndex());
     ActionCommand command = ActionCommand.valueOf(rbGroup.getSelection().getActionCommand());
 
     final DefaultListModel<String> detailsModel = new DefaultListModel<>();
@@ -344,27 +386,30 @@ public final class CommitsPanelProvider {
             .forEach(detailsModel::addElement);
         break;
       case CODEC:
-        commitsModel.getSegmentCodec(commitGen, segName).ifPresent(codec -> {
-          Map<String, String> map = new HashMap<>();
-          map.put("Codec name", codec.getName());
-          map.put("Codec class name", codec.getClass().getName());
-          map.put("Compound format", codec.compoundFormat().getClass().getName());
-          map.put("DocValues format", codec.docValuesFormat().getClass().getName());
-          map.put("FieldInfos format", codec.fieldInfosFormat().getClass().getName());
-          map.put("LiveDocs format", codec.liveDocsFormat().getClass().getName());
-          map.put("Norms format", codec.normsFormat().getClass().getName());
-          map.put("Points format", codec.pointsFormat().getClass().getName());
-          map.put("Postings format", codec.postingsFormat().getClass().getName());
-          map.put("SegmentInfo format", codec.segmentInfoFormat().getClass().getName());
-          map.put("StoredFields format", codec.storedFieldsFormat().getClass().getName());
-          map.put("TermVectors format", codec.termVectorsFormat().getClass().getName());
-          map.entrySet().stream()
-              .map(entry -> entry.getKey() + " = " + entry.getValue()).forEach(detailsModel::addElement);
-        });
+        commitsModel
+            .getSegmentCodec(commitGen, segName)
+            .ifPresent(
+                codec -> {
+                  Map<String, String> map = new HashMap<>();
+                  map.put("Codec name", codec.getName());
+                  map.put("Codec class name", codec.getClass().getName());
+                  map.put("Compound format", codec.compoundFormat().getClass().getName());
+                  map.put("DocValues format", codec.docValuesFormat().getClass().getName());
+                  map.put("FieldInfos format", codec.fieldInfosFormat().getClass().getName());
+                  map.put("LiveDocs format", codec.liveDocsFormat().getClass().getName());
+                  map.put("Norms format", codec.normsFormat().getClass().getName());
+                  map.put("Points format", codec.pointsFormat().getClass().getName());
+                  map.put("Postings format", codec.postingsFormat().getClass().getName());
+                  map.put("SegmentInfo format", codec.segmentInfoFormat().getClass().getName());
+                  map.put("StoredFields format", codec.storedFieldsFormat().getClass().getName());
+                  map.put("TermVectors format", codec.termVectorsFormat().getClass().getName());
+                  map.entrySet().stream()
+                      .map(entry -> entry.getKey() + " = " + entry.getValue())
+                      .forEach(detailsModel::addElement);
+                });
         break;
     }
     segDetailList.setModel(detailsModel);
-
   }
 
   private class ListenerFunctions {
@@ -376,7 +421,6 @@ public final class CommitsPanelProvider {
     void showSegmentDetails(MouseEvent e) {
       CommitsPanelProvider.this.showSegmentDetails();
     }
-
   }
 
   private class Observer implements IndexObserver, DirectoryObserver {
@@ -425,8 +469,17 @@ public final class CommitsPanelProvider {
       deletedLbl.setText("");
       segCntLbl.setText("");
       userDataTA.setText("");
-      TableUtils.setupTable(filesTable, ListSelectionModel.SINGLE_SELECTION, new FilesTableModel(), null, FilesTableModel.Column.FILENAME.getColumnWidth());
-      TableUtils.setupTable(segmentsTable, ListSelectionModel.SINGLE_SELECTION, new SegmentsTableModel(), null,
+      TableUtils.setupTable(
+          filesTable,
+          ListSelectionModel.SINGLE_SELECTION,
+          new FilesTableModel(),
+          null,
+          FilesTableModel.Column.FILENAME.getColumnWidth());
+      TableUtils.setupTable(
+          segmentsTable,
+          ListSelectionModel.SINGLE_SELECTION,
+          new SegmentsTableModel(),
+          null,
           SegmentsTableModel.Column.NAME.getColumnWidth(),
           SegmentsTableModel.Column.MAXDOCS.getColumnWidth(),
           SegmentsTableModel.Column.DELS.getColumnWidth(),
@@ -441,13 +494,14 @@ public final class CommitsPanelProvider {
   }
 
   enum ActionCommand {
-    DIAGNOSTICS, ATTRIBUTES, CODEC;
+    DIAGNOSTICS,
+    ATTRIBUTES,
+    CODEC;
   }
 
   static final class FilesTableModel extends TableModelBase<FilesTableModel.Column> {
 
     enum Column implements TableColumnInfo {
-
       FILENAME("Filename", 0, String.class, 200),
       SIZE("Size", 1, String.class, Integer.MAX_VALUE);
 
@@ -506,7 +560,6 @@ public final class CommitsPanelProvider {
   static final class SegmentsTableModel extends TableModelBase<SegmentsTableModel.Column> {
 
     enum Column implements TableColumnInfo {
-
       NAME("Name", 0, String.class, 60),
       MAXDOCS("Max docs", 1, Integer.class, 60),
       DELS("Dels", 2, Integer.class, 60),
@@ -572,4 +625,3 @@ public final class CommitsPanelProvider {
     }
   }
 }
-
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/ComponentOperatorRegistry.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/ComponentOperatorRegistry.java
index 0d9c99b..40eb735 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/ComponentOperatorRegistry.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/ComponentOperatorRegistry.java
@@ -44,7 +44,5 @@ public class ComponentOperatorRegistry {
   }
 
   /** marker interface for operators */
-  public interface ComponentOperator {
-  }
-
+  public interface ComponentOperator {}
 }
diff --git a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/DocumentsPanelProvider.java b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/DocumentsPanelProvider.java
index e9daece..85ca168 100644
--- a/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/DocumentsPanelProvider.java
+++ b/lucene/luke/src/java/org/apache/lucene/luke/app/desktop/components/DocumentsPanelProvider.java
@@ -17,26 +17,6 @@
 
 package org.apache.lucene.luke.app.desktop.components;
 
-import javax.swing.BorderFactory;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JMenuItem;
-import javax.swing.JPanel;
-import javax.swing.JPopupMenu;
-import javax.swing.JScrollPane;
-import javax.swing.JSpinner;
-import javax.swing.JSplitPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.ListSelectionModel;
-import javax.swing.SpinnerModel;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.table.TableCellRenderer;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
@@ -57,7 +37,26 @@ import java.math.BigInteger;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
-
+import javax.swing.BorderFactory;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
+import javax.swing.JSpinner;
+import javax.swing.JSplitPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.SpinnerModel;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.event.ChangeEvent;
+import javax.swing.table.TableCellRenderer;
 import org.apache.lucene.index.DocValuesType;
 import org.apache.lucene.index.IndexOptions;
 import org.apache.lucene.index.Term;
@@ -152,26 +151,30 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     this.dvDialogFactory = DocValuesDialogFactory.getInstance();
     this.valueDialogFactory = StoredValueDialogFactory.getInstance();
     HelpDialogFactory helpDialogFactory = HelpDialogFactory.getInstance();
-    this.tableHeaderRenderer = new HelpHeaderRenderer(
-        "About Flags", "Format: IdfpoNPSB#txxVDtxxxxTx/x",
-        createFlagsHelpDialog(), helpDialogFactory);
+    this.tableHeaderRenderer =
+        new HelpHeaderRenderer(
+            "About Flags",
+            "Format: IdfpoNPSB#txxVDtxxxxTx/x",
+            createFlagsHelpDialog(),
+            helpDialogFactory);
 
     IndexHandler.getInstance().addObserver(new Observer());
     operatorRegistry.register(DocumentsTabOperator.class, this);
   }
 
   private JComponent createFlagsHelpDialog() {
-    String[] values = new String[]{
-        "I - index options(docs, frequencies, positions, offsets)",
-        "N - norms",
-        "P - payloads",
-        "S - stored",
-        "B - binary stored values",
-        "#txx - numeric stored values(type, precision)",
-        "V - term vectors",
-        "Dtxxxxx - doc values(type)",
-        "Tx/x - point values(num bytes/dimension)"
-    };
+    String[] values =
+        new String[] {
+          "I - index options(docs, frequencies, positions, offsets)",
+          "N - norms",
+          "P - payloads",
+          "S - stored",
+          "B - binary stored values",
+          "#txx - numeric stored values(type, precision)",
+          "V - term vectors",
+          "Dtxxxxx - doc values(type)",
+          "Tx/x - point values(num bytes/dimension)"
+        };
     JList<String> list = new JList<>(values);
     return new JScrollPane(list);
   }
@@ -181,7 +184,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     panel.setOpaque(false);
     panel.setBorder(BorderFactory.createLineBorder(Color.gray));
 
-    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
+    JSplitPane splitPane =
+        new JSplitPane(JSplitPane.VERTICAL_SPLIT, initUpperPanel(), initLowerPanel());
     splitPane.setOpaque(false);
     splitPane.setDividerLocation(0.4);
     panel.add(splitPane);
@@ -238,7 +242,9 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     c.gridwidth = 2;
     center.add(fieldsCombo, c);
 
-    firstTermBtn.setText(FontUtils.elegantIconHtml("&#x38;", MessageUtils.getLocalizedMessage("documents.button.first_term")));
+    firstTermBtn.setText(
+        FontUtils.elegantIconHtml(
+            "&#x38;", MessageUtils.getLocalizedMessage("documents.button.first_term")));
     firstTermBtn.setMaximumSize(new Dimension(80, 30));
     firstTermBtn.addActionListener(listeners::showFirstTerm);
     c.gridx = 0;
@@ -272,7 +278,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
     JPanel footer = new JPanel(new FlowLayout(FlowLayout.LEADING, 20, 5));
     footer.setOpaque(false);
-    JLabel hintLbl = new JLabel(MessageUtils.getLocalizedMessage("documents.label.browse_terms_hint"));
+    JLabel hintLbl =
+        new JLabel(MessageUtils.getLocalizedMessage("documents.label.browse_terms_hint"));
     footer.add(hintLbl);
     panel.add(footer, BorderLayout.PAGE_END);
 
@@ -289,7 +296,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     GridBagConstraints c = new GridBagConstraints();
     c.fill = GridBagConstraints.BOTH;
 
-    JLabel label = new JLabel(MessageUtils.getLocalizedMessage("documents.label.browse_doc_by_term"));
+    JLabel label =
+        new JLabel(MessageUtils.getLocalizedMessage("documents.label.browse_doc_by_term"));
     c.gridx = 0;
     c.gridy = 0;
     c.weightx = 0.0;
@@ -308,7 +316,9 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     c.insets = new Insets(5, 5, 5, 5);
     center.add(selectedTermTF, c);
 
-    firstTermDocBtn.setText(FontUtils.elegantIconHtml("&#x38;", MessageUtils.getLocalizedMessage("documents.button.first_termdoc")));
+    firstTermDocBtn.setText(
+        FontUtils.elegantIconHtml(
+            "&#x38;", MessageUtils.getLocalizedMessage("documents.button.first_termdoc")));
     firstTermDocBtn.addActionListener(listeners::showFirstTermDoc);
     c.gridx = 0;
     c.gridy = 2;
@@ -343,8 +353,14 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     c.insets = new Insets(5, 5, 5, 5);
     center.add(termDocsNumLbl, c);
 
-    TableUtils.setupTable(posTable, ListSelectionModel.SINGLE_SELECTION, new PosTableModel(), null,
-        PosTableModel.Column.POSITION.getColumnWidth(), PosTableModel.Column.OFFSETS.getColumnWidth(), PosTableModel.Column.PAYLOAD.getColumnWidth());
+    TableUtils.setupTable(
+        posTable,
+        ListSelectionModel.SINGLE_SELECTION,
+        new PosTableModel(),
+        null,
+        PosTableModel.Column.POSITION.getColumnWidth(),
+        PosTableModel.Column.OFFSETS.getColumnWidth(),
+        PosTableModel.Column.PAYLOAD.getColumnWidth());
     JScrollPane scrollPane = new JScrollPane(posTable);
     scrollPane.setMinimumSize(new Dimension(100, 100));
     c.gridx = 0;
@@ -370,17 +386,23 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
     JPanel browseDocsNote1 = new JPanel(new FlowLayout(FlowLayout.LEADING));
     browseDocsNote1.setOpaque(false);
-    browseDocsNote1.add(new JLabel(MessageUtils.getLocalizedMessage("documents.label.doc_table_note1")));
+    browseDocsNote1.add(
+        new JLabel(MessageUtils.getLocalizedMessage("documents.label.doc_table_note1")));
     browseDocsPanel.add(browseDocsNote1);
 
     JPanel browseDocsNote2 = new JPanel(new FlowLayout(FlowLayout.LEADING));
     browseDocsNote2.setOpaque(false);
-    browseDocsNote2.add(new JLabel(MessageUtils.getLocalizedMessage("documents.label.doc_table_note2")));
+    browseDocsNote2.add(
+        new JLabel(MessageUtils.getLocalizedMessage("documents.label.doc_table_note2")));
     browseDocsPanel.add(browseDocsNote2);
 
     panel.add(browseDocsPanel, BorderLayout.PAGE_START);
 
-    TableUtils.setupTable(documentTable, ListSelectionModel.MULTIPLE_INTERVAL_SELECTION, new DocumentsTableModel(), new MouseAdapter() {
+    TableUtils.setupTable(
+        documentTable,
+        ListSelectionModel.MULTIPLE_INTERVAL_SELECTION,
+        new DocumentsTableModel(),
+        new MouseAdapter() {
           @Override
           public void mouseClicked(MouseEvent e) {
             listeners.showDocumentContextMenu(e);
@@ -394,7 +416,10 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     flagsHeader.setOpaque(false);
     flagsHeader.add(new JLabel("Flags"));
     flagsHeader.add(new JLabel("Help"));
-    documentTable.getColumnModel().getColumn(DocumentsTableModel.Column.FLAGS.getIndex()).setHeaderValue(flagsHeader);
+    documentTable
+        .getColumnModel()
+        .getColumn(DocumentsTableModel.Column.FLAGS.getIndex())
+        .setHeaderValue(flagsHeader);
 
     JScrollPane scrollPane = new JScrollPane(documentTable);
     scrollPane.getHorizontalScrollBar().setAutoscrolls(false);
@@ -410,7 +435,10 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
     JPanel left = new JPanel(new FlowLayout(FlowLayout.LEADING, 10, 2));
     left.setOpaque(false);
-    JLabel label = new JLabel(FontUtils.elegantIconHtml("&#x68;", MessageUtils.getLocalizedMessage("documents.label.browse_doc_by_idx")));
+    JLabel label =
+        new JLabel(
+            FontUtils.elegantIconHtml(
+                "&#x68;", MessageUtils.getLocalizedMessage("documents.label.browse_doc_by_idx")));
     label.setHorizontalTextPosition(JLabel.LEFT);
     left.add(label);
     docNumSpnr.setPreferredSize(new Dimension(100, 25));
@@ -422,15 +450,21 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
     JPanel right = new JPanel(new FlowLayout(FlowLayout.TRAILING));
     right.setOpaque(false);
-    copyDocValuesBtn.setText(FontUtils.elegantIconHtml("&#xe0e6;", MessageUtils.getLocalizedMessage("documents.buttont.copy_values")));
+    copyDocValuesBtn.setText(
+        FontUtils.elegantIconHtml(
+            "&#xe0e6;", MessageUtils.getLocalizedMessage("documents.buttont.copy_values")));
     copyDocValuesBtn.setMargin(new Insets(5, 0, 5, 0));
     copyDocValuesBtn.addActionListener(listeners::copySelectedOrAllStoredValues);
     right.add(copyDocValuesBtn);
-    mltBtn.setText(FontUtils.elegantIconHtml("&#xe030;", MessageUtils.getLocalizedMessage("documents.button.mlt")));
+    mltBtn.setText(
+        FontUtils.elegantIconHtml(
+            "&#xe030;", MessageUtils.getLocalizedMessage("documents.button.mlt")));
     mltBtn.setMargin(new Insets(5, 0, 5, 0));
     mltBtn.addActionListener(listeners::mltSearch);
     right.add(mltBtn);
-    addDocBtn.setText(FontUtils.elegantIconHtml("&#x59;", MessageUtils.getLocalizedMessage("documents.button.add")));
+    addDocBtn.setText(
+        FontUtils.elegantIconHtml(
+            "&#x59;", MessageUtils.getLocalizedMessage("documents.button.add")));
     addDocBtn.setMargin(new Insets(5, 0, 5, 0));
     addDocBtn.addActionListener(listeners::showAddDocumentDialog);
     right.add(addDocBtn);
@@ -441,22 +475,26 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
   private void setUpDocumentContextMenu() {
     // show term vector
-    JMenuItem item1 = new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item1"));
+    JMenuItem item1 =
+        new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item1"));
     item1.addActionListener(listeners::showTermVectorDialog);
     documentContextMenu.add(item1);
 
     // show doc values
-    JMenuItem item2 = new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item2"));
+    JMenuItem item2 =
+        new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item2"));
     item2.addActionListener(listeners::showDocValuesDialog);
     documentContextMenu.add(item2);
 
     // show stored value
-    JMenuItem item3 = new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item3"));
+    JMenuItem item3 =
+        new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item3"));
     item3.addActionListener(listeners::showStoredValueDialog);
     documentContextMenu.add(item3);
 
     // copy stored value to clipboard
-    JMenuItem item4 = new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item4"));
+    JMenuItem item4 =
+        new JMenuItem(MessageUtils.getLocalizedMessage("documents.doctable.menu.item4"));
     item4.addActionListener(listeners::copyStoredValue);
     documentContextMenu.add(item4);
   }
@@ -466,7 +504,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
   private void showFirstTerm() {
     String fieldName = (String) fieldsCombo.getSelectedItem();
     if (fieldName == null || fieldName.length() == 0) {
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("documents.field.message.not_selected"));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage("documents.field.message.not_selected"));
       return;
     }
 
@@ -542,9 +581,12 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     messageBroker.clearStatusMessage();
   }
 
-
   private void clearPosTable() {
-    TableUtils.setupTable(posTable, ListSelectionModel.SINGLE_SELECTION, new PosTableModel(), null,
+    TableUtils.setupTable(
+        posTable,
+        ListSelectionModel.SINGLE_SELECTION,
+        new PosTableModel(),
+        null,
         PosTableModel.Column.POSITION.getColumnWidth(),
         PosTableModel.Column.OFFSETS.getColumnWidth(),
         PosTableModel.Column.PAYLOAD.getColumnWidth());
@@ -555,7 +597,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     int docid = documentsModel.firstTermDoc().orElse(-1);
     if (docid < 0) {
       nextTermDocBtn.setEnabled(false);
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("documents.termdocs.message.not_available"));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage("documents.termdocs.message.not_available"));
       return;
     }
     termDocIdxTF.setText(String.valueOf(1));
@@ -563,9 +606,18 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
     List<TermPosting> postings = documentsModel.getTermPositions();
     posTable.setModel(new PosTableModel(postings));
-    posTable.getColumnModel().getColumn(PosTableModel.Column.POSITION.getIndex()).setPreferredWidth(PosTableModel.Column.POSITION.getColumnWidth());
-    posTable.getColumnModel().getColumn(PosTableModel.Column.OFFSETS.getIndex()).setPreferredWidth(PosTableModel.Column.OFFSETS.getColumnWidth());
-    posTable.getColumnModel().getColumn(PosTableModel.Column.PAYLOAD.getIndex()).setPreferredWidth(PosTableModel.Column.PAYLOAD.getColumnWidth());
+    posTable
+        .getColumnModel()
+        .getColumn(PosTableModel.Column.POSITION.getIndex())
+        .setPreferredWidth(PosTableModel.Column.POSITION.getColumnWidth());
+    posTable
+        .getColumnModel()
+        .getColumn(PosTableModel.Column.OFFSETS.getIndex())
+        .setPreferredWidth(PosTableModel.Column.OFFSETS.getColumnWidth());
+    posTable
+        .getColumnModel()
+        .getColumn(PosTableModel.Column.PAYLOAD.getIndex())
+        .setPreferredWidth(PosTableModel.Column.PAYLOAD.getColumnWidth());
 
     nextTermDocBtn.setEnabled(true);
     messageBroker.clearStatusMessage();
@@ -575,7 +627,8 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
     int docid = documentsModel.nextTermDoc().orElse(-1);
     if (docid < 0) {
       nextTermDocBtn.setEnabled(false);
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("documents.termdocs.message.not_available"));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage("documents.termdocs.message.not_available"));
       return;
     }
     int curIdx = Integer.parseInt(termDocIdxTF.getText());
@@ -596,75 +649,121 @@ public final class DocumentsPanelProvider implements DocumentsTabOperator {
 
   private void mltSearch() {
     int docNum = (int) docNumSpnr.getValue();
-    operatorRegistry.get(SearchTabOperator.class).ifPresent(operator -> {
-      operator.mltSearch(docNum);
-      tabSwitcher.switchTab(TabbedPaneProvider.Tab.SEARCH);
-    });
+    operatorRegistry
+        .get(SearchTabOperator.class)
+        .ifPresent(
+            operator -> {
+              operator.mltSearch(docNum);
+              tabSwitcher.switchTab(TabbedPaneProvider.Tab.SEARCH);
+            });
   }
 
   private void showAddDocumentDialog() {
-    new DialogOpener<>(addDocDialogFactory).open("Add document", 600, 500,
-        (factory) -> {
-        });
+    new DialogOpener<>(addDocDialogFactory).open("Add document", 600, 500, (factory) -> {});
   }
 
   private void showTermVectorDialog() {
     int docid = (Integer) docNumSpnr.getValue();
-    String field = (String) documentTable.getModel().getValueAt(documentTable.getSelectedRow(), DocumentsTableModel.Column.FIELD.getIndex());
+    String field =
+        (String)
+            documentTable
+                .getModel()
+                .getValueAt(
+                    documentTable.getSelectedRow(), DocumentsTableModel.Column.FIELD.getIndex());
     List<TermVectorEntry> tvEntries = documentsModel.getTermVectors(docid, field);
     if (tvEntries.isEmpty()) {
-      messageBroker.showStatusMessage(MessageUtils.getLocalizedMessage("documents.termvector.message.not_available", field, docid));
+      messageBroker.showStatusMessage(
+          MessageUtils.getLocalizedMessage(
+              "documents.termvector.message.not_available", field, docid));
       return;
     }
 
-    new DialogOpener<>(tvDialogFactory).open(
-        "Term Vector", 600, 400,
-        (factory) -> {
-          factory.setField(field);
-          factory.setTvEntries(tvEntries);
-        });
+    new DialogOpener<>(tvDialogFactory)
+        .open(
... 201562 lines suppressed ...