if (ms == null) { throw new IllegalArgumentException("MessageStore is null"); }
   protected ChannelSupport(Serializable channelID,                            MessageStore ms,                            TransactionLog tl,                            boolean acceptReliableMessages)   {      if (log.isTraceEnabled()) { log.trace("creating " + (tl != null ? "recoverable " : "non-recoverable ") + "channel[" + channelID + "]"); }      this.channelID = channelID;      this.ms = ms;      this.tl = tl;      if (tl == null)      {         state = new NonRecoverableState(this, acceptReliableMessages);      }      else      {         state = new RecoverableState(this, tl);         // acceptReliableMessage ignored, the channel alwyas accepts reliable messages      }   }