src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java

changeset 231
ff0f02a67881
parent 229
5f026ab0098c
child 323
052dda3b5ce3
equal deleted inserted replaced
230:34af2070439b 231:ff0f02a67881
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 }

mercurial