diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-06-08 14:30:51 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-06-08 14:30:51 +0200 |
commit | dc1e2f82241d2860ae481b8e0d8442e248c7b89c (patch) | |
tree | ab5aafe6bb280e03ee5f0e7c37e2ea3094326178 /java-compat/src | |
parent | Fixed bogus C# ami/metrics tests (diff) | |
download | ice-dc1e2f82241d2860ae481b8e0d8442e248c7b89c.tar.bz2 ice-dc1e2f82241d2860ae481b8e0d8442e248c7b89c.tar.xz ice-dc1e2f82241d2860ae481b8e0d8442e248c7b89c.zip |
Fixed ICE-7994 - invocation metrics issue with AMI batch oneway requests
Diffstat (limited to 'java-compat/src')
4 files changed, 10 insertions, 9 deletions
diff --git a/java-compat/src/Ice/src/main/java/IceInternal/AsyncResultI.java b/java-compat/src/Ice/src/main/java/IceInternal/AsyncResultI.java index b0369089d66..3cc9c9c45d3 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/AsyncResultI.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/AsyncResultI.java @@ -328,7 +328,7 @@ public class AsyncResultI implements AsyncResult } } - protected boolean finished(boolean ok) + protected boolean finished(boolean ok, boolean invoke) { synchronized(this) { @@ -338,7 +338,8 @@ public class AsyncResultI implements AsyncResult _state |= StateOK; } _cancellationHandler = null; - if(_callback == null) + invoke &= _callback != null; + if(!invoke) { if(_observer != null) { @@ -347,7 +348,7 @@ public class AsyncResultI implements AsyncResult } } this.notifyAll(); - return _callback != null; + return invoke; } } diff --git a/java-compat/src/Ice/src/main/java/IceInternal/OutgoingAsync.java b/java-compat/src/Ice/src/main/java/IceInternal/OutgoingAsync.java index be1eaef7a8f..d2470858ada 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/OutgoingAsync.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/OutgoingAsync.java @@ -170,7 +170,7 @@ public class OutgoingAsync extends ProxyOutgoingAsyncBase // _sentSynchronously = true; _proxy._getBatchRequestQueue().finishBatchRequest(_os, _proxy, getOperation()); - finished(true); + finished(true, false); } else { @@ -333,7 +333,7 @@ public class OutgoingAsync extends ProxyOutgoingAsyncBase } } - return finished(replyStatus == ReplyStatus.replyOK); + return finished(replyStatus == ReplyStatus.replyOK, true); } catch(Ice.Exception ex) { diff --git a/java-compat/src/Ice/src/main/java/IceInternal/ProxyGetConnection.java b/java-compat/src/Ice/src/main/java/IceInternal/ProxyGetConnection.java index c918107e4ca..74919c5ddb5 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/ProxyGetConnection.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/ProxyGetConnection.java @@ -35,7 +35,7 @@ public class ProxyGetConnection extends ProxyOutgoingAsyncBase throws RetryException { _cachedConnection = connection; - if(finished(true)) + if(finished(true, true)) { invokeCompletedAsync(); } @@ -45,7 +45,7 @@ public class ProxyGetConnection extends ProxyOutgoingAsyncBase @Override public int invokeCollocated(CollocatedRequestHandler handler) { - if(finished(true)) + if(finished(true, true)) { invokeCompletedAsync(); } diff --git a/java-compat/src/Ice/src/main/java/IceInternal/ProxyOutgoingAsyncBase.java b/java-compat/src/Ice/src/main/java/IceInternal/ProxyOutgoingAsyncBase.java index 507c8aea68f..68308f97184 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/ProxyOutgoingAsyncBase.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/ProxyOutgoingAsyncBase.java @@ -291,14 +291,14 @@ public abstract class ProxyOutgoingAsyncBase extends OutgoingAsyncBase } @Override - protected boolean finished(boolean ok) + protected boolean finished(boolean ok, boolean invoke) { if(_future != null) { _future.cancel(false); _future = null; } - return super.finished(ok); + return super.finished(ok, invoke); } protected int handleException(Ice.Exception exc) |