183 // this part similar to Remarshal in this method below |
183 // this part similar to Remarshal in this method below |
184 if (retry) { |
184 if (retry) { |
185 if(getContactInfoListIterator(orb).hasNext()) { |
185 if(getContactInfoListIterator(orb).hasNext()) { |
186 contactInfo = (ContactInfo) |
186 contactInfo = (ContactInfo) |
187 getContactInfoListIterator(orb).next(); |
187 getContactInfoListIterator(orb).next(); |
|
188 unregisterWaiter(orb); |
188 return beginRequest(self, opName, |
189 return beginRequest(self, opName, |
189 isOneWay, contactInfo); |
190 isOneWay, contactInfo); |
190 } else { |
191 } else { |
191 throw e; |
192 throw e; |
192 } |
193 } |
290 // REVISIT: |
291 // REVISIT: |
291 // This assumes that interceptors update |
292 // This assumes that interceptors update |
292 // ContactInfoList outside of subcontract. |
293 // ContactInfoList outside of subcontract. |
293 // Want to move that update to here. |
294 // Want to move that update to here. |
294 if (getContactInfoListIterator(orb).hasNext()) { |
295 if (getContactInfoListIterator(orb).hasNext()) { |
295 contactInfo = (ContactInfo) |
296 contactInfo = (ContactInfo)getContactInfoListIterator(orb).next(); |
296 getContactInfoListIterator(orb).next(); |
297 if (orb.subcontractDebugFlag) { |
|
298 dprint( "RemarshalException: hasNext true\ncontact info " + contactInfo ); |
|
299 } |
|
300 |
|
301 // Fix for 6763340: Complete the first attempt before starting another. |
|
302 orb.getPIHandler().makeCompletedClientRequest( |
|
303 ReplyMessage.LOCATION_FORWARD, null ) ; |
|
304 unregisterWaiter(orb); |
|
305 orb.getPIHandler().cleanupClientPIRequest() ; |
|
306 |
297 return beginRequest(self, opName, isOneWay, contactInfo); |
307 return beginRequest(self, opName, isOneWay, contactInfo); |
298 } else { |
308 } else { |
|
309 if (orb.subcontractDebugFlag) { |
|
310 dprint( "RemarshalException: hasNext false" ); |
|
311 } |
299 ORBUtilSystemException wrapper = |
312 ORBUtilSystemException wrapper = |
300 ORBUtilSystemException.get(orb, |
313 ORBUtilSystemException.get(orb, |
301 CORBALogDomains.RPC_PROTOCOL); |
314 CORBALogDomains.RPC_PROTOCOL); |
302 throw wrapper.remarshalWithNowhereToGo(); |
315 throw wrapper.remarshalWithNowhereToGo(); |
303 } |
316 } |