diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2009-04-27 14:18:34 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2009-04-27 14:18:34 -0230 |
commit | 401516d06074526382156f1c1923c3cdb9e82077 (patch) | |
tree | 2a378cfd0479631b0478b52c7c993c5046da7592 /java/src/IceInternal/ObjectAdapterFactory.java | |
parent | Bug 2475 - remove AMD_Array_Object_ice_invoke (diff) | |
download | ice-401516d06074526382156f1c1923c3cdb9e82077.tar.bz2 ice-401516d06074526382156f1c1923c3cdb9e82077.tar.xz ice-401516d06074526382156f1c1923c3cdb9e82077.zip |
Bug 3138 - remove object adapter map
Diffstat (limited to 'java/src/IceInternal/ObjectAdapterFactory.java')
-rw-r--r-- | java/src/IceInternal/ObjectAdapterFactory.java | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/java/src/IceInternal/ObjectAdapterFactory.java b/java/src/IceInternal/ObjectAdapterFactory.java index 672a0c100bd..c0ba375b16c 100644 --- a/java/src/IceInternal/ObjectAdapterFactory.java +++ b/java/src/IceInternal/ObjectAdapterFactory.java @@ -14,7 +14,7 @@ public final class ObjectAdapterFactory public void shutdown() { - java.util.Map<String, Ice.ObjectAdapterI> adapters; + java.util.List<Ice.ObjectAdapterI> adapters; synchronized(this) { // @@ -40,7 +40,7 @@ public final class ObjectAdapterFactory // if(adapters != null) { - for(Ice.ObjectAdapterI adapter : adapters.values()) + for(Ice.ObjectAdapterI adapter : adapters) { adapter.deactivate(); } @@ -50,7 +50,7 @@ public final class ObjectAdapterFactory public void waitForShutdown() { - java.util.Map<String, Ice.ObjectAdapterI> adapters; + java.util.List<Ice.ObjectAdapterI> adapters; synchronized(this) { // @@ -90,7 +90,7 @@ public final class ObjectAdapterFactory // if(adapters != null) { - for(Ice.ObjectAdapterI adapter : adapters.values()) + for(Ice.ObjectAdapterI adapter : adapters) { adapter.waitForDeactivate(); } @@ -120,7 +120,7 @@ public final class ObjectAdapterFactory // waitForShutdown(); - java.util.Map<String, Ice.ObjectAdapterI> adapters; + java.util.List<Ice.ObjectAdapterI> adapters; synchronized(this) { adapters = _adapters; @@ -138,7 +138,7 @@ public final class ObjectAdapterFactory // if(adapters != null) { - for(Ice.ObjectAdapterI adapter : adapters.values()) + for(Ice.ObjectAdapterI adapter : adapters) { adapter.destroy(); } @@ -153,23 +153,22 @@ public final class ObjectAdapterFactory throw new Ice.ObjectAdapterDeactivatedException(); } - Ice.ObjectAdapterI adapter = _adapters.get(name); - if(adapter != null) - { - throw new Ice.AlreadyRegisteredException("object adapter", name); - } - + Ice.ObjectAdapterI adapter = null; if(name.length() == 0) { String uuid = java.util.UUID.randomUUID().toString(); adapter = new Ice.ObjectAdapterI(_instance, _communicator, this, uuid, null, true); - _adapters.put(uuid, adapter); } else { + if(_adapterNamesInUse.contains(name)) + { + throw new Ice.AlreadyRegisteredException("object adapter", name); + } + _adapterNamesInUse.add(name); adapter = new Ice.ObjectAdapterI(_instance, _communicator, this, name, router, false); - _adapters.put(name, adapter); } + _adapters.add(adapter); return adapter; } @@ -184,7 +183,7 @@ public final class ObjectAdapterFactory return null; } - adapters = new java.util.ArrayList<Ice.ObjectAdapterI>(_adapters.values()); + adapters = _adapters; } for(Ice.ObjectAdapterI adapter : adapters) @@ -206,14 +205,15 @@ public final class ObjectAdapterFactory } public synchronized void - removeObjectAdapter(String name) + removeObjectAdapter(Ice.ObjectAdapter adapter) { if(_instance == null) { return; } - _adapters.remove(name); + _adapters.remove(adapter); + _adapterNamesInUse.remove(adapter.getName()); } public void @@ -227,7 +227,7 @@ public final class ObjectAdapterFactory return; } - adapters = new java.util.ArrayList<Ice.ObjectAdapterI>(_adapters.values()); + adapters = _adapters; } for(Ice.ObjectAdapterI adapter : adapters) @@ -260,6 +260,7 @@ public final class ObjectAdapterFactory private Instance _instance; private Ice.Communicator _communicator; - private java.util.Map<String, Ice.ObjectAdapterI> _adapters = new java.util.HashMap<String, Ice.ObjectAdapterI>(); + private java.util.Set<String> _adapterNamesInUse = new java.util.HashSet<String>(); + private java.util.List<Ice.ObjectAdapterI> _adapters = new java.util.LinkedList<Ice.ObjectAdapterI>(); private boolean _waitForShutdown; } |