private void internalCancelReferences() {
    cancelRefs();

    if (queue != null) {
      queue.deliverAsync();
    }
  }
  protected void fail(final boolean permanently) {
    logger.debug(this + "\n\t::fail being called, permanently=" + permanently);

    if (queue != null) {
      try {
        if (logger.isTraceEnabled()) {
          logger.trace("Removing consumer on fail " + this + " from queue " + queue);
        }
        queue.removeConsumer(this);
      } catch (Exception dontcare) {
        logger.debug(dontcare);
      }
    }

    cancelRefs();
    if (queue != null) {
      queue.deliverAsync();
    }
  }