383 } |
383 } |
384 |
384 |
385 boolean retry = |
385 boolean retry = |
386 getContactInfoListIterator(orb) |
386 getContactInfoListIterator(orb) |
387 .reportException(messageMediator.getContactInfo(), e); |
387 .reportException(messageMediator.getContactInfo(), e); |
|
388 |
|
389 //Bug 6382377: must not lose exception in PI |
|
390 |
|
391 // Must run interceptor end point before retrying. |
|
392 Exception newException = |
|
393 orb.getPIHandler().invokeClientPIEndingPoint( |
|
394 ReplyMessage.SYSTEM_EXCEPTION, e); |
|
395 |
388 if (retry) { |
396 if (retry) { |
389 // Must run interceptor end point before retrying. |
|
390 Exception newException = |
|
391 orb.getPIHandler().invokeClientPIEndingPoint( |
|
392 ReplyMessage.SYSTEM_EXCEPTION, e); |
|
393 if (newException == e) { |
397 if (newException == e) { |
394 continueOrThrowSystemOrRemarshal(messageMediator, |
398 continueOrThrowSystemOrRemarshal(messageMediator, |
395 new RemarshalException()); |
399 new RemarshalException()); |
396 } else { |
400 } else { |
397 continueOrThrowSystemOrRemarshal(messageMediator, |
401 continueOrThrowSystemOrRemarshal(messageMediator, |
398 newException); |
402 newException); |
399 } |
403 } |
400 } else { |
404 } else { |
|
405 if (newException instanceof RuntimeException){ |
|
406 throw (RuntimeException)newException; |
|
407 } |
|
408 else if (newException instanceof RemarshalException) |
|
409 { |
|
410 throw (RemarshalException)newException; |
|
411 } |
|
412 |
401 // NOTE: Interceptor ending point will run in releaseReply. |
413 // NOTE: Interceptor ending point will run in releaseReply. |
402 throw e; |
414 throw e; |
403 } |
415 } |
404 return null; // for compiler |
416 return null; // for compiler |
405 } |
417 } |