code: @Override
      public void setClientID(String clientID) throws JMSException {
          checkClosing();
          if (clientID == null || clientID.isEmpty()) {
              throw new InvalidClientIDException("ClientID is empty");
          }
          if (this.clientID != null) {
              throw new IllegalStateException("ClientID is already set");
          }
          if (actionOnConnectionTaken) {
              throw new IllegalStateException(
                      "Client ID cannot be set after any action on the connection is taken");
          }
          this.clientID = clientID;
      }
docs: Sets the client identifier for this connection.
  <P>
  Does not verify uniqueness of client ID, so does not detect if another
  connection is already using the same client ID
  
  @param clientID
  The client identifier
  @throws JMSException
  If the connection is being closed
  @throws InvalidClientIDException
  If empty or null client ID is used
  @throws IllegalStateException
  If the client ID is already set or attempted to set after an
  action on the connection already took place