summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ServantManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/ServantManager.java')
-rw-r--r--java/src/IceInternal/ServantManager.java19
1 files changed, 19 insertions, 0 deletions
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)
{