summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ServantManager.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2004-05-20 19:52:04 +0000
committerBernard Normier <bernard@zeroc.com>2004-05-20 19:52:04 +0000
commitab6b7d91a0d4f27a9f1a289e7a95f653de03a248 (patch)
tree27eea95a640587461acd87ef489615e5718a481e /java/src/IceInternal/ServantManager.java
parentFixed strange Sun CC 5.5 release failure (diff)
downloadice-ab6b7d91a0d4f27a9f1a289e7a95f653de03a248.tar.bz2
ice-ab6b7d91a0d4f27a9f1a289e7a95f653de03a248.tar.xz
ice-ab6b7d91a0d4f27a9f1a289e7a95f653de03a248.zip
remove now returns the servant
Diffstat (limited to 'java/src/IceInternal/ServantManager.java')
-rw-r--r--java/src/IceInternal/ServantManager.java6
1 files changed, 3 insertions, 3 deletions
diff --git a/java/src/IceInternal/ServantManager.java b/java/src/IceInternal/ServantManager.java
index 77c674756d2..4e89eb4aa9f 100644
--- a/java/src/IceInternal/ServantManager.java
+++ b/java/src/IceInternal/ServantManager.java
@@ -45,7 +45,7 @@ public final class ServantManager extends Thread
m.put(facet, servant);
}
- public synchronized void
+ public synchronized Ice.Object
removeServant(Ice.Identity ident, String facet)
{
assert(_instance != null); // Must not be called after destruction.
@@ -57,7 +57,7 @@ public final class ServantManager extends Thread
java.util.HashMap m = (java.util.HashMap)_servantMapMap.get(ident);
Ice.Object obj = null;
- if(m == null || (obj = (Ice.Object)m.get(facet)) == null)
+ if(m == null || (obj = (Ice.Object)m.remove(facet)) == null)
{
Ice.NotRegisteredException ex = new Ice.NotRegisteredException();
ex.id = Ice.Util.identityToString(ident);
@@ -69,11 +69,11 @@ public final class ServantManager extends Thread
throw ex;
}
- m.remove(facet);
if(m.isEmpty())
{
_servantMapMap.remove(ident);
}
+ return obj;
}
public synchronized java.util.Map