summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/Outgoing.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/Outgoing.java')
-rw-r--r--java/src/IceInternal/Outgoing.java15
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)