diff options
author | Jose <jose@zeroc.com> | 2009-08-12 16:38:54 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-08-12 16:38:54 +0200 |
commit | ba6ab6aa0d34a137a8ff66f3d838da6220ed2e0b (patch) | |
tree | ddd314317dd0609c30641c1bc020e947c95453f3 /java/src/IceInternal/ServantManager.java | |
parent | Additional fix for bug 3290 (diff) | |
download | ice-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.java | 10 |
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 { |