summaryrefslogtreecommitdiff
path: root/java/src/Ice/ObjectImpl.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-06-27 10:31:41 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-06-27 10:31:41 +0200
commita4f93259dc3494d98addf38e69b87eb557d432b3 (patch)
treed2b78bb5cea24e33dc1b46be22dba6167e96c9ed /java/src/Ice/ObjectImpl.java
parentFix for ICE-5515 (ice_staticId on proxies) in Java, C#, Python, Ruby and PHP ... (diff)
downloadice-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.java33
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)
{