docs: public AIRequestedTick updateRequestToValue(
      long tick,
      AIMessageItem msgItem,
      boolean valueDelivered,
      SendDispatcher sendDispatcher)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "updateRequestToValue",
          new Object[] { Long.valueOf(tick), msgItem, Boolean.valueOf(valueDelivered)});
  
      AIRequestedTick rt = null;
      _targetStream.setCursor(tick);
      TickRange tickRange = _targetStream.getNext();
      if (tickRange.type == TickRange.Requested)
      {
        rt = (AIRequestedTick) tickRange.value;
        RemoteDispatchableKey ck = rt.getRemoteDispatchableKey();
  
        // The tick keeps the in-memory Java reference of the message object if valueDelivered=false,
        //      the constructor takes the reference to extract reliability and priority
        // Re-enter the ck as part of the V/U's state, just in case ordered
        //      delivery applies to consumer cardinality other than one
        AIValueTick valueTick =
          new AIValueTick(
            tick,
            msgItem,
            valueDelivered,
            ck,
            rt.getOriginalTimeout(),
            rt.getIssueTime(),
            msgItem.getMessage().getRedeliveredCount().intValue());
        TickRange valueRange = new TickRange(TickRange.Value, tick, tick);
        valueRange.value = valueTick;
        valueRange.valuestamp = tick;
  
        _targetStream.writeRange(valueRange);
  
        if (rt.getTimeout() > 0L || rt.getTimeout() == _mp.getCustomProperties().get_infinite_timeout())
        {
          if (rt.isSlowed())
          {
            _slowedGetTOM.removeTimeoutEntry(rt);
          }
          else
          {
            _eagerGetTOM.removeTimeoutEntry(rt);
          }
        }
      }
      else if (tickRange.type == TickRange.Accepted)
      {
        sendDispatcher.sendAccept(tick);
      }
      else if (tickRange.type == TickRange.Rejected)
      {
        AIRejectedRange rr = (AIRejectedRange)tickRange.value;
        sendDispatcher.sendReject(tick, tick, rr.unlockCount, rr.recovery);
      }
      else if (tickRange.type == TickRange.Completed)
      {
        sendDispatcher.sendCompleted(tick, tick);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "updateRequestToValue", rt);
  
      return rt;
    }