/** @param ctx message context for the unacked message */
    protected ResendCandidate(Message m) {
      message = m;
      retries = 0;
      RMConfiguration cfg = manager.getEffectiveConfiguration(message);
      long baseRetransmissionInterval = cfg.getBaseRetransmissionInterval().longValue();
      backoff = cfg.isExponentialBackoff() ? RetransmissionQueue.DEFAULT_EXPONENTIAL_BACKOFF : 1;
      next = new Date(System.currentTimeMillis() + baseRetransmissionInterval);
      nextInterval = baseRetransmissionInterval * backoff;
      RetryPolicyType rmrp =
          null != manager.getSourcePolicy() ? manager.getSourcePolicy().getRetryPolicy() : null;
      maxRetries = null != rmrp ? rmrp.getMaxRetries() : -1;

      AddressingProperties maps = RMContextUtils.retrieveMAPs(message, false, true);
      AttributedURIType to = null;
      if (null != maps) {
        to = maps.getTo();
      }
      if (to != null && RMUtils.getAddressingConstants().getAnonymousURI().equals(to.getValue())) {
        LOG.log(Level.INFO, "Cannot resend to anonymous target.  Not scheduling a resend.");
        return;
      }
      RMProperties rmprops = RMContextUtils.retrieveRMProperties(message, true);
      if (null != rmprops) {
        number = rmprops.getSequence().getMessageNumber();
      }
      if (null != manager.getTimer() && maxRetries != 0) {
        schedule();
      }
    }