diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-06-27 10:31:41 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-06-27 10:31:41 +0200 |
commit | a4f93259dc3494d98addf38e69b87eb557d432b3 (patch) | |
tree | d2b78bb5cea24e33dc1b46be22dba6167e96c9ed /java/src/Ice/ObjectImpl.java | |
parent | Fix for ICE-5515 (ice_staticId on proxies) in Java, C#, Python, Ruby and PHP ... (diff) | |
download | ice-a4f93259dc3494d98addf38e69b87eb557d432b3.tar.bz2 ice-a4f93259dc3494d98addf38e69b87eb557d432b3.tar.xz ice-a4f93259dc3494d98addf38e69b87eb557d432b3.zip |
Better collocation optimization, fix for ICE-5489, ICE-5484
Diffstat (limited to 'java/src/Ice/ObjectImpl.java')
-rw-r--r-- | java/src/Ice/ObjectImpl.java | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/java/src/Ice/ObjectImpl.java b/java/src/Ice/ObjectImpl.java index 6b051e2a4b0..dcc4acdd52d 100644 --- a/java/src/Ice/ObjectImpl.java +++ b/java/src/Ice/ObjectImpl.java @@ -269,28 +269,21 @@ public abstract class ObjectImpl implements Object, java.lang.Cloneable, java.io public DispatchStatus ice_dispatch(Request request, DispatchInterceptorAsyncCallback cb) { - if(request.isCollocated()) + IceInternal.Incoming in = (IceInternal.Incoming)request; + if(cb != null) { - return __collocDispatch((IceInternal.Direct)request); + in.push(cb); } - else + try + { + in.startOver(); // may raise ResponseSentException + return __dispatch(in, in.getCurrent()); + } + finally { - IceInternal.Incoming in = (IceInternal.Incoming)request; if(cb != null) { - in.push(cb); - } - try - { - in.startOver(); // may raise ResponseSentException - return __dispatch(in, in.getCurrent()); - } - finally - { - if(cb != null) - { - in.pop(); - } + in.pop(); } } } @@ -344,12 +337,6 @@ public abstract class ObjectImpl implements Object, java.lang.Cloneable, java.io throw new Ice.OperationNotExistException(current.id, current.facet, current.operation); } - public DispatchStatus - __collocDispatch(IceInternal.Direct request) - { - return request.run(this); - } - public void __write(IceInternal.BasicStream os) { |