summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2004-05-14 02:16:38 +0000
committerMichi Henning <michi@zeroc.com>2004-05-14 02:16:38 +0000
commitabefe064ba1761a89410a428e27b55ab8cdfcb50 (patch)
treeb379957d4be29976701cabb86f1e3cd3919c3382 /java/src
parentAdded removeAllFacets. Michi, repeat after me: "forgetting to return a (diff)
downloadice-abefe064ba1761a89410a428e27b55ab8cdfcb50.tar.bz2
ice-abefe064ba1761a89410a428e27b55ab8cdfcb50.tar.xz
ice-abefe064ba1761a89410a428e27b55ab8cdfcb50.zip
Added ObjectAdapter.removeAllFacets().
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/ObjectAdapterI.java9
-rw-r--r--java/src/IceInternal/ServantManager.java19
2 files changed, 28 insertions, 0 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java
index 563ab0c3ed1..57cdcb4e59f 100644
--- a/java/src/Ice/ObjectAdapterI.java
+++ b/java/src/Ice/ObjectAdapterI.java
@@ -345,6 +345,15 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt
_servantManager.removeServant(ident, facet);
}
+ public synchronized java.util.Map
+ removeAllFacets(Identity ident)
+ {
+ checkForDeactivation();
+ checkIdentity(ident);
+
+ return _servantManager.removeAllFacets(ident);
+ }
+
public Ice.Object
find(Identity ident)
{
diff --git a/java/src/IceInternal/ServantManager.java b/java/src/IceInternal/ServantManager.java
index 43265bcb96e..e2b18635e30 100644
--- a/java/src/IceInternal/ServantManager.java
+++ b/java/src/IceInternal/ServantManager.java
@@ -81,6 +81,25 @@ public final class ServantManager extends Thread
}
}
+ public synchronized java.util.Map
+ removeAllFacets(Ice.Identity ident)
+ {
+ assert(_instance != null); // Must not be called after destruction.
+
+ java.util.HashMap m = (java.util.HashMap)_servantMap.get(ident);
+ if(m == null)
+ {
+ Ice.NotRegisteredException ex = new Ice.NotRegisteredException();
+ ex.id = Ice.Util.identityToString(ident);
+ ex.kindOfObject = "servant";
+ throw ex;
+ }
+
+ _servantMap.remove(ident);
+
+ return m;
+ }
+
public synchronized Ice.Object
findServant(Ice.Identity ident, String facet)
{