diff options
Diffstat (limited to 'java/src/IceInternal/Outgoing.java')
-rw-r--r-- | java/src/IceInternal/Outgoing.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/java/src/IceInternal/Outgoing.java b/java/src/IceInternal/Outgoing.java index 545f8f79800..eec1e4eb8f0 100644 --- a/java/src/IceInternal/Outgoing.java +++ b/java/src/IceInternal/Outgoing.java @@ -107,7 +107,7 @@ public final class Outgoing implements OutgoingMessageCallback } catch(Ice.OperationInterruptedException ex) { - if(_handler.requestCanceled(this, new Ice.OperationInterruptedException())) + if(_handler.requestCanceled(this, ex)) { // // Wait for the exception to propagate. It's possible the request handler ignores @@ -134,6 +134,10 @@ public final class Outgoing implements OutgoingMessageCallback } } } + else + { + throw ex; + } } boolean timedOut = false; @@ -183,7 +187,8 @@ public final class Outgoing implements OutgoingMessageCallback if(timedOut) { - if(_handler.requestCanceled(this, new Ice.InvocationTimeoutException())) + Ice.InvocationTimeoutException ex = new Ice.InvocationTimeoutException(); + if(_handler.requestCanceled(this, ex)) { // // Wait for the exception to propagate. It's possible the request handler ignores @@ -199,7 +204,7 @@ public final class Outgoing implements OutgoingMessageCallback { wait(); } - catch(InterruptedException ex) + catch(InterruptedException e) { interrupted = true; } @@ -210,6 +215,10 @@ public final class Outgoing implements OutgoingMessageCallback } } } + else + { + throw ex; + } } if(_exception != null) |