summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ServantManager.java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-08-12 16:38:54 +0200
committerJose <jose@zeroc.com>2009-08-12 16:38:54 +0200
commitba6ab6aa0d34a137a8ff66f3d838da6220ed2e0b (patch)
treeddd314317dd0609c30641c1bc020e947c95453f3 /java/src/IceInternal/ServantManager.java
parentAdditional fix for bug 3290 (diff)
downloadice-ba6ab6aa0d34a137a8ff66f3d838da6220ed2e0b.tar.bz2
ice-ba6ab6aa0d34a137a8ff66f3d838da6220ed2e0b.tar.xz
ice-ba6ab6aa0d34a137a8ff66f3d838da6220ed2e0b.zip
2564 - removeServantLocator remaining issues.
Diffstat (limited to 'java/src/IceInternal/ServantManager.java')
-rw-r--r--java/src/IceInternal/ServantManager.java10
1 files changed, 4 insertions, 6 deletions
diff --git a/java/src/IceInternal/ServantManager.java b/java/src/IceInternal/ServantManager.java
index 8f6dd6cb756..ddee73a6693 100644
--- a/java/src/IceInternal/ServantManager.java
+++ b/java/src/IceInternal/ServantManager.java
@@ -266,23 +266,21 @@ public final class ServantManager
public void
destroy()
{
- Object[] locatorMap = null;
+ java.util.Map<String, Ice.ServantLocator> locatorMap = new java.util.HashMap<String, Ice.ServantLocator>();
Ice.Logger logger = null;
synchronized(this)
{
assert(_instance != null); // Must not be called after destruction.
logger = _instance.initializationData().logger;
_servantMapMap.clear();
+
+ locatorMap.putAll(_locatorMap);
_locatorMap.clear();
- locatorMap = _locatorMap.entrySet().toArray();
_instance = null;
}
- for(int i = 0; i < locatorMap.length; ++i)
+ for(java.util.Map.Entry<String, Ice.ServantLocator> p : locatorMap.entrySet())
{
- @SuppressWarnings("unchecked")
- java.util.Map.Entry<String, Ice.ServantLocator> p =
- (java.util.Map.Entry<String, Ice.ServantLocator>)locatorMap[i];
Ice.ServantLocator locator = p.getValue();
try
{