private void noMoreData() {
    if (source.isRecovered()) {
      LOG.debug("Finished recovering queue for group {} of peer {}", walGroupId,
        source.getQueueId());
      source.getSourceMetrics().incrCompletedRecoveryQueue();
    } else {
      LOG.debug("Finished queue for group {} of peer {}", walGroupId, source.getQueueId());
    }
    setWorkerState(WorkerState.FINISHED);
  }
This thread reads entries from a queue and ships them. Entries are placed onto the queue by
ReplicationSourceWALReaderThread
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java