/** Republish QoS1 and QoS2 messages stored into the session for the clientID. */
  private void republishStoredInSession(ClientSession clientSession) {
    LOG.trace("republishStoredInSession for client <{}>", clientSession);
    List<IMessagesStore.StoredMessage> publishedEvents = clientSession.storedMessages();
    if (publishedEvents.isEmpty()) {
      LOG.info("No stored messages for client <{}>", clientSession.clientID);
      return;
    }

    LOG.info("republishing stored messages to client <{}>", clientSession.clientID);
    for (IMessagesStore.StoredMessage pubEvt : publishedEvents) {
      // TODO put in flight zone
      directSend(
          clientSession,
          pubEvt.getTopic(),
          pubEvt.getQos(),
          pubEvt.getMessage(),
          false,
          pubEvt.getMessageID());
      clientSession.removeEnqueued(pubEvt.getGuid());
    }
  }