/** Reset the info object so that it can be reused for a retry, for example. */
  void reset() {
    super.reset();

    // Please keep these in the same order that they're declared above.

    retryRequest = false;

    // Do not reset entryCount because we need to know when to pop this
    // from the stack.

    request = null;
    diiInitiate = false;
    messageMediator = null;

    // Clear cached attributes:
    cachedTargetObject = null;
    cachedEffectiveTargetObject = null;
    cachedArguments = null;
    cachedExceptions = null;
    cachedContexts = null;
    cachedOperationContext = null;
    cachedReceivedExceptionId = null;
    cachedResult = null;
    cachedReceivedException = null;
    cachedEffectiveProfile = null;
    cachedRequestServiceContexts = null;
    cachedReplyServiceContexts = null;
    cachedEffectiveComponents = null;

    piCurrentPushed = false;

    startingPointCall = CALL_SEND_REQUEST;
    endingPointCall = CALL_RECEIVE_REPLY;
  }
  /** Reset the info object so that it can be reused for a retry, for example. */
  void reset() {
    super.reset();

    // Please keep these in the same order as declared above.

    forwardRequestRaisedInEnding = false;

    request = null;
    servant = null;
    objectId = null;
    oktemp = null;

    adapterId = null;
    adapterName = null;

    addReplyServiceContextQueue = null;
    replyMessage = null;
    targetMostDerivedInterface = null;
    dsiArguments = null;
    dsiResult = null;
    dsiException = null;
    isDynamic = false;
    objectAdapter = null;
    serverRequestId = myORB.getPIHandler().allocateServerRequestId();

    // reset cached attributes:
    cachedArguments = null;
    cachedSendingException = null;
    cachedRequestServiceContexts = null;
    cachedReplyServiceContexts = null;

    startingPointCall = CALL_RECEIVE_REQUEST_SERVICE_CONTEXT;
    intermediatePointCall = CALL_RECEIVE_REQUEST;
    endingPointCall = CALL_SEND_REPLY;
  }