diff options
Diffstat (limited to 'java/src/Ice/ObjectPrxHelper.java')
-rw-r--r-- | java/src/Ice/ObjectPrxHelper.java | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/java/src/Ice/ObjectPrxHelper.java b/java/src/Ice/ObjectPrxHelper.java index 6b0cdc19e8c..1b7dffb4243 100644 --- a/java/src/Ice/ObjectPrxHelper.java +++ b/java/src/Ice/ObjectPrxHelper.java @@ -403,6 +403,22 @@ public class ObjectPrxHelper implements ObjectPrx } public final ObjectPrx + ice_collocationOptimization(boolean b) + { + IceInternal.Reference ref = _reference.changeCollocationOptimization(b); + if(ref.equals(_reference)) + { + return this; + } + else + { + ObjectPrxHelper proxy = new ObjectPrxHelper(); + proxy.setup(ref); + return proxy; + } + } + + public final ObjectPrx ice_default() { IceInternal.Reference ref = _reference.changeDefault(); @@ -579,24 +595,28 @@ public class ObjectPrxHelper implements ObjectPrx { if(_delegate == null) { - IceInternal.ObjectAdapterFactory objectAdapterFactory = _reference.instance.objectAdapterFactory(); - - // - // Instance components may be null if Communicator has been destroyed. - // - if(objectAdapterFactory == null) - { - throw new CommunicatorDestroyedException(); - } - - ObjectAdapter adapter = objectAdapterFactory.findObjectAdapter(this); - if(adapter != null) - { - _ObjectDelD delegate = __createDelegateD(); - delegate.setup(_reference, adapter); - _delegate = delegate; - } - else + if(_reference.collocationOptimization) + { + IceInternal.ObjectAdapterFactory objectAdapterFactory = _reference.instance.objectAdapterFactory(); + + // + // Instance components may be null if communicator has been destroyed. + // + if(objectAdapterFactory == null) + { + throw new CommunicatorDestroyedException(); + } + + ObjectAdapter adapter = objectAdapterFactory.findObjectAdapter(this); + if(adapter != null) + { + _ObjectDelD delegate = __createDelegateD(); + delegate.setup(_reference, adapter); + _delegate = delegate; + } + } + + if(_delegate == null) { _ObjectDelM delegate = __createDelegateM(); delegate.setup(_reference); |