docs: @Override
  	public void finishStage(ResponseBuilder rb) {
  		 // System.out
  		 // .println(System.nanoTime() + " - " + Thread.currentThread().getId()
  		 //  + " - " + rb.req.getParams().getBool(ShardParams.IS_SHARD, false)
  		 // + " FINISHRESPONSES " + rb.stage + " " + rb.req.getParamString());
  		MtasSolrStatus solrStatus = Objects
  				.requireNonNull((MtasSolrStatus) rb.req.getContext().get(MtasSolrStatus.class), "couldn't find status");
  		solrStatus.setStage(rb.stage);
  		try {
  			if (rb.stage == ResponseBuilder.STAGE_EXECUTE_QUERY) {
  				Status status = solrStatus.status();
  				if (status.numberDocumentsFound == null) {
  					status.numberDocumentsFound = rb.getNumberDocumentsFound();
  				}
  				// try to finish status from get fields stage
  			} else if (rb.stage >= ResponseBuilder.STAGE_GET_FIELDS) {
  				finishStatus(solrStatus);
  			}
  			if (rb.req.getParams().getBool(PARAM_MTAS, false)) {
  				if (rb.req.getParams().getBool(MtasSolrComponentVersion.PARAM_MTAS_VERSION, false)) {
  					searchVersion.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentStats.PARAM_MTAS_STATS, false)) {
  					searchStats.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentTermvector.PARAM_MTAS_TERMVECTOR, false)) {
  					searchTermvector.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentPrefix.PARAM_MTAS_PREFIX, false)) {
  					searchPrefix.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentFacet.PARAM_MTAS_FACET, false)) {
  					searchFacet.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentCollection.PARAM_MTAS_COLLECTION, false)) {
  					searchCollection.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentGroup.PARAM_MTAS_GROUP, false)) {
  					searchGroup.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentList.PARAM_MTAS_LIST, false)) {
  					searchList.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentDocument.PARAM_MTAS_DOCUMENT, false)) {
  					searchDocument.finishStage(rb);
  				}
  				if (rb.req.getParams().getBool(MtasSolrComponentKwic.PARAM_MTAS_KWIC, false)) {
  					searchKwic.finishStage(rb);
  				}
  				mtasSolrResultMerge.merge(rb);
  			}
  		} catch (ExitableDirectoryReader.ExitingReaderException e) {
  			solrStatus.setError(e.getMessage());
  		}
  	}