code: private SMPPSession getSession() throws IOException {
      if (session == null) {
        LOGGER.info("Initiate session for the first time to {}:{}", remoteIpAddress, remotePort);
        session = newSession();
      }
      else if (!session.getSessionState().isBound()) {
        throw new IOException("We have no valid session yet");
      }
      return session;
    }
docs: Get the session. If the session still null or not in bound state, then IO exception will be thrown.
  
  @return the valid session.
  @throws IOException if there is no valid session or session creation is invalid.