diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/CommunicatorI.java | 1 | ||||
-rw-r--r-- | java/src/Ice/RoutingTable.java | 10 | ||||
-rw-r--r-- | java/src/IceInternal/RouterManager.java | 6 |
3 files changed, 17 insertions, 0 deletions
diff --git a/java/src/Ice/CommunicatorI.java b/java/src/Ice/CommunicatorI.java index 20923b57f88..e9eaffc97d2 100644 --- a/java/src/Ice/CommunicatorI.java +++ b/java/src/Ice/CommunicatorI.java @@ -17,6 +17,7 @@ class CommunicatorI implements Communicator { if(_instance != null) { + _serverThreadPool = null; _instance.objectAdapterFactory().shutdown(); _instance.destroy(); _instance = null; diff --git a/java/src/Ice/RoutingTable.java b/java/src/Ice/RoutingTable.java index 844bd527318..e5a2f24776a 100644 --- a/java/src/Ice/RoutingTable.java +++ b/java/src/Ice/RoutingTable.java @@ -18,6 +18,16 @@ public final class RoutingTable } // + // Clear the contents of the routing table. + // + synchronized public void + clear() + { + _table.clear(); + } + + + // // Returns false if the Proxy exists already. // public boolean diff --git a/java/src/IceInternal/RouterManager.java b/java/src/IceInternal/RouterManager.java index 5c27c32be06..54472df5dfc 100644 --- a/java/src/IceInternal/RouterManager.java +++ b/java/src/IceInternal/RouterManager.java @@ -19,6 +19,12 @@ public final class RouterManager synchronized void destroy() { + java.util.Iterator i = _table.values().iterator(); + while(i.hasNext()) + { + RouterInfo info = (RouterInfo)i.next(); + info.destroy(); + } _table.clear(); } |