if (! contactInfoListIterator.hasNext()) {
throw ((CorbaContactInfoListIterator)contactInfoListIterator)
.getFailureException();
}
CorbaContactInfo contactInfo = (CorbaContactInfo) contactInfoListIterator.next();
ClientRequestDispatcher subcontract = contactInfo.getClientRequestDispatcher();
// Remember chosen subcontract for invoke and releaseReply.
// NOTE: This is necessary since a stream is not available in
// releaseReply if there is a client marshaling error or an
// error in _invoke.
invocationInfo.setClientRequestDispatcher(subcontract);
return (OutputStream)
subcontract.beginRequest(self, operation,
!responseExpected, contactInfo);
}