diff options
author | Mark Spruiell <mes@zeroc.com> | 2005-04-29 18:17:14 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2005-04-29 18:17:14 +0000 |
commit | 19b5869472e679fb244709a53a1bb8b79ec5186f (patch) | |
tree | f65bbf8032a89f96a3c55c468d00e04a7e43edf5 /java/src/Ice/ObjectAdapterI.java | |
parent | Added call to srand48() (diff) | |
download | ice-19b5869472e679fb244709a53a1bb8b79ec5186f.tar.bz2 ice-19b5869472e679fb244709a53a1bb8b79ec5186f.tar.xz ice-19b5869472e679fb244709a53a1bb8b79ec5186f.zip |
- Removing BufferManager class and BasicStream.destroy(), which reduces the
complexity of many existing finalizers.
- Removed code that cleans up cached objects.
- For compatibility with C#, finalizers no longer call methods on other
objects.
Diffstat (limited to 'java/src/Ice/ObjectAdapterI.java')
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index 7d9e4b4e57b..2064b0c1337 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -241,12 +241,15 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // Now we wait for until all incoming connection factories are // finished. // - final int sz = _incomingConnectionFactories.size(); - for(int i = 0; i < sz; ++i) + if(_incomingConnectionFactories != null) { - IceInternal.IncomingConnectionFactory factory = - (IceInternal.IncomingConnectionFactory)_incomingConnectionFactories.get(i); - factory.waitUntilFinished(); + final int sz = _incomingConnectionFactories.size(); + for(int i = 0; i < sz; ++i) + { + IceInternal.IncomingConnectionFactory factory = + (IceInternal.IncomingConnectionFactory)_incomingConnectionFactories.get(i); + factory.waitUntilFinished(); + } } // @@ -279,7 +282,10 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // We're done, now we can throw away all incoming connection // factories. // - _incomingConnectionFactories.clear(); + // For compatibility with C#, we set _incomingConnectionFactories + // to null so that the finalizer does not invoke methods on objects. + // + _incomingConnectionFactories = null; // // Remove object references (some of them cyclic). @@ -735,18 +741,26 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt { if(!_deactivated) { - _instance.logger().warning("object adapter `" + _name + "' has not been deactivated"); + // + // For compatibility with C#, we do not invoke methods on other objects + // in a finalizer. + // + //_instance.logger().warning("object adapter `" + _name + "' has not been deactivated"); } else if(_instance != null) { - _instance.logger().warning("object adapter `" + _name + "' deactivation had not been waited for"); + // + // For compatibility with C#, we do not invoke methods on other objects + // in a finalizer. + // + //_instance.logger().warning("object adapter `" + _name + "' deactivation had not been waited for"); } else { assert(_threadPool == null); assert(_servantManager == null); assert(_communicator == null); - assert(_incomingConnectionFactories.isEmpty()); + assert(_incomingConnectionFactories == null); assert(_directCount == 0); assert(!_waitForDeactivate); } |