diff options
author | Jose <jose@zeroc.com> | 2008-12-18 14:32:27 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2008-12-18 14:32:27 +0100 |
commit | 57a0a4333fbb0b41cd7423b37b59534455a3173b (patch) | |
tree | 174b28cf580405b213ae4da8fd96b2ca509bd9aa /java/src/Ice/ObjectAdapterI.java | |
parent | Merge branch 'R3_3_branch'; commit 'origin/R3_3_branch' into R3_3_branch (diff) | |
download | ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.tar.bz2 ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.tar.xz ice-57a0a4333fbb0b41cd7423b37b59534455a3173b.zip |
Revert "Remove Java finalizers code"
This reverts commit 94e1da6dc82a8ed38ee7a5691d691d375aaa28cb.
Diffstat (limited to 'java/src/Ice/ObjectAdapterI.java')
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index 61af2b359d6..5c6d7755cf1 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -355,6 +355,9 @@ public final class ObjectAdapterI implements ObjectAdapter // We're done, now we can throw away all incoming connection // factories. // + // For compatibility with C#, we set _incomingConnectionFactories + // to null so that the finalizer does not invoke methods on objects. + // _incomingConnectionFactories = null; // @@ -937,6 +940,32 @@ public final class ObjectAdapterI implements ObjectAdapter } } + protected synchronized void + finalize() + throws Throwable + { + if(!_deactivated) + { + _instance.initializationData().logger.warning("object adapter `" + getName() + + "' has not been deactivated"); + } + else if(!_destroyed) + { + _instance.initializationData().logger.warning("object adapter `" + getName() + "' has not been destroyed"); + } + else + { + IceUtilInternal.Assert.FinalizerAssert(_threadPool == null); + //IceUtilInternal.Assert.FinalizerAssert(_servantManager == null); // Not cleared, it needs to be immutable. + IceUtilInternal.Assert.FinalizerAssert(_communicator == null); + IceUtilInternal.Assert.FinalizerAssert(_incomingConnectionFactories == null); + IceUtilInternal.Assert.FinalizerAssert(_directCount == 0); + IceUtilInternal.Assert.FinalizerAssert(!_waitForActivate); + } + + super.finalize(); + } + private ObjectPrx newProxy(Identity ident, String facet) { |