void sendMessageDirectly(ClientMessage clientMessage) {
    Message message;
    try {
      if (logger.isDebugEnabled()) {
        logger.debug("{}: Dispatching directly: {}", this, clientMessage);
      }
      message = clientMessage.getMessage(getProxy(), true);
      sendMessage(message);
      if (logger.isDebugEnabled()) {
        logger.debug("{}: Dispatched directly: {}", this, clientMessage);
      }
      // The exception handling code was modeled after the MessageDispatcher
      // run method
    } catch (MessageTooLargeException e) {
      logger.warn("Message too large to send to client: {}, {}", clientMessage, e.getMessage());

    } catch (IOException e) {
      synchronized (_stopDispatchingLock) {
        // Pause or unregister proxy
        if (!isStopped() && !getProxy().isPaused()) {
          logger.fatal(String.format("%s : An unexpected Exception occurred", this),
              e);
          pauseOrUnregisterProxy(e);
        }
      }
    } catch (Exception e) {
      if (!isStopped()) {
        logger.fatal(String.format("%s : An unexpected Exception occurred", this), e);
      }
    }
  }
Add the input client message to the message queue

@param clientMessage The <code>Conflatable</code> to add to the queue
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/MessageDispatcher.java