diff options
author | Matthew Newhook <matthew@zeroc.com> | 2005-09-19 22:32:11 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2005-09-19 22:32:11 +0000 |
commit | c3923de822e94b8765c7081081ef5684f92f1c49 (patch) | |
tree | b29ef852397cd34e2c0d325f76d205ddd6949dcc /java/src/Ice/ObjectAdapterI.java | |
parent | Fixing some typo bugs in the binary builder script. (diff) | |
download | ice-c3923de822e94b8765c7081081ef5684f92f1c49.tar.bz2 ice-c3923de822e94b8765c7081081ef5684f92f1c49.tar.xz ice-c3923de822e94b8765c7081081ef5684f92f1c49.zip |
Fixed problem with ObjectAdapter.addRouter not removing duplicate endpoints
correctly.
Diffstat (limited to 'java/src/Ice/ObjectAdapterI.java')
-rw-r--r-- | java/src/Ice/ObjectAdapterI.java | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java index f642d2074fb..09cd32eef9a 100644 --- a/java/src/Ice/ObjectAdapterI.java +++ b/java/src/Ice/ObjectAdapterI.java @@ -509,15 +509,23 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt _routerEndpoints.add(endpoints[i]); } java.util.Collections.sort(_routerEndpoints); // Must be sorted. - for(int i = 0; i < _routerEndpoints.size() - 1; ++i) - { + // + // Remove duplicate endpoints, so we have a list of unique + // endpoints. + // + for(int i = 0; i < _routerEndpoints.size()-1;) + { java.lang.Object o1 = _routerEndpoints.get(i); java.lang.Object o2 = _routerEndpoints.get(i + 1); if(o1.equals(o2)) { _routerEndpoints.remove(i); } - } + else + { + ++i; + } + } // // Associate this object adapter with the router. This way, @@ -546,9 +554,8 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt // // Rebuild the router endpoints from our set of router infos. // - _routerEndpoints = new java.util.ArrayList(); - java.util.Iterator p = _routerInfos.iterator(); - while(p.hasNext()) + _routerEndpoints.clear(); + for(java.util.Iterator p = _routerInfos.iterator(); p.hasNext();) { IceInternal.RouterInfo curr = (IceInternal.RouterInfo)p.next(); if(curr == routerInfo) @@ -565,15 +572,23 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt } java.util.Collections.sort(_routerEndpoints); // Must be sorted. - for(int i = 0; i < _routerEndpoints.size() - 1; ++i) - { + // + // Remove duplicate endpoints, so we have a list of unique + // endpoints. + // + for(int i = 0; i < _routerEndpoints.size()-1;) + { java.lang.Object o1 = _routerEndpoints.get(i); java.lang.Object o2 = _routerEndpoints.get(i + 1); if(o1.equals(o2)) { _routerEndpoints.remove(i); } - } + else + { + ++i; + } + } // // Clear this object adapter with the router. |