diff options
Diffstat (limited to 'java/src/IceInternal/ProxyBatchOutgoingAsync.java')
-rw-r--r-- | java/src/IceInternal/ProxyBatchOutgoingAsync.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/java/src/IceInternal/ProxyBatchOutgoingAsync.java b/java/src/IceInternal/ProxyBatchOutgoingAsync.java index c6f7efdbe5b..aa8d9133430 100644 --- a/java/src/IceInternal/ProxyBatchOutgoingAsync.java +++ b/java/src/IceInternal/ProxyBatchOutgoingAsync.java @@ -17,6 +17,34 @@ public class ProxyBatchOutgoingAsync extends BatchOutgoingAsync _proxy = prx; } + public void + __send() + { + // + // We don't automatically retry if ice_flushBatchRequests fails. Otherwise, if some batch + // requests were queued with the connection, they would be lost without being noticed. + // + Ice._ObjectDel delegate = null; + int cnt = -1; // Don't retry. + try + { + delegate = ((Ice.ObjectPrxHelperBase)_proxy).__getDelegate(false); + int status = delegate.__getRequestHandler().flushAsyncBatchRequests(this); + if((status & AsyncStatus.Sent) > 0) + { + _sentSynchronously = true; + if((status & AsyncStatus.InvokeSentCallback) > 0) + { + __sent(); + } + } + } + catch(Ice.LocalException __ex) + { + cnt = ((Ice.ObjectPrxHelperBase)_proxy).__handleException(delegate, __ex, null, cnt); + } + } + public Ice.ObjectPrx getProxy() { return _proxy; |