diff options
Diffstat (limited to 'java/src/IceInternal/ServantManager.java')
-rw-r--r-- | java/src/IceInternal/ServantManager.java | 19 |
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) { |