diff options
Diffstat (limited to 'java/src/IceInternal/OutgoingAsync.java')
-rw-r--r-- | java/src/IceInternal/OutgoingAsync.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/java/src/IceInternal/OutgoingAsync.java b/java/src/IceInternal/OutgoingAsync.java index 992b9ca6265..94e3a8ae2b4 100644 --- a/java/src/IceInternal/OutgoingAsync.java +++ b/java/src/IceInternal/OutgoingAsync.java @@ -9,7 +9,7 @@ package IceInternal; -public class OutgoingAsync extends AsyncResultI implements OutgoingAsyncMessageCallback +public class OutgoingAsync extends OutgoingAsyncBase implements OutgoingAsyncMessageCallback { public OutgoingAsync(Ice.ObjectPrx prx, String operation, CallbackBase cb) { @@ -245,6 +245,26 @@ public class OutgoingAsync extends AsyncResultI implements OutgoingAsyncMessageC } @Override + public void processRetry(boolean destroyed) + { + if(destroyed) + { + invokeExceptionAsync(new Ice.CommunicatorDestroyedException()); + } + else + { + try + { + invoke(false); + } + catch(Ice.LocalException ex) + { + invokeExceptionAsync(ex); + } + } + } + + @Override public void dispatchInvocationCancel(final Ice.LocalException ex, ThreadPool threadPool, Ice.Connection connection) { threadPool.dispatch(new DispatchWorkItem(connection) @@ -654,9 +674,9 @@ public class OutgoingAsync extends AsyncResultI implements OutgoingAsyncMessageC } protected Ice.ObjectPrxHelperBase _proxy; - protected RequestHandler _handler; - protected int _cnt; + private RequestHandler _handler; + private int _cnt; private Ice.EncodingVersion _encoding; private Ice.OperationMode _mode; private boolean _sent; |