private void validateTicksize(Instrument instrument, double price) {
    TickType ts = instrument.getTickscale();

    if (ts.canVerifyPrice()) {
      if (!ts.isValid(price)) {

        delim().append(INVALID_PRICE);

        ts.writeError(price, _err);
      }
    } else {
      ReusableString msg = TLC.instance().pop();
      msg.append(MISSING_TICK).append(instrument.getRIC());
      _log.warn(msg);
      TLC.instance().pushback(msg);
    }
  }
 @Override
 public void dispatch(final Message msg) {
   if (msg != null) {
     final MessageHandler handler = msg.getMessageHandler();
     final NonBlockingSession session = (NonBlockingSession) handler;
     final MessageQueue queue = session.getSendQueue();
     if (queue != null) {
       queue.add(msg);
     } else {
       // should NEVER happen
       ReusableString s = TLC.instance().pop();
       s.copy(((Session) handler).getComponentId())
           .append(": Missing Queue, unable to dispatch : ");
       msg.dump(s);
       _log.error(MISSING_HANDLER, s);
       TLC.instance().pushback(s);
     }
   }
 }