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