diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-09-19 11:33:43 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-09-19 11:33:43 +0000 |
commit | 642a066529ba18a12e2a5e6f91b4c67bb4c3d6e3 (patch) | |
tree | f7eaa7d966e2b90979b40dc676c5b5528bcdd60c /cpp/src/IceGrid/AdapterCache.cpp | |
parent | Added simple demo (diff) | |
download | ice-642a066529ba18a12e2a5e6f91b4c67bb4c3d6e3.tar.bz2 ice-642a066529ba18a12e2a5e6f91b4c67bb4c3d6e3.tar.xz ice-642a066529ba18a12e2a5e6f91b4c67bb4c3d6e3.zip |
Bug fixes
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp index 36dd71d292f..5a9459c1960 100644 --- a/cpp/src/IceGrid/AdapterCache.cpp +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -114,10 +114,7 @@ AdapterEntry::enableReplication(const LoadBalancingPolicyPtr& policy) { _loadBalancingNReplicas = 1; } - else if(_loadBalancingNReplicas > static_cast<int>(_servers.size())) - { - _loadBalancingNReplicas = _servers.size(); - } + AdaptiveLoadBalancingPolicyPtr alb = AdaptiveLoadBalancingPolicyPtr::dynamicCast(_loadBalancing); if(alb) { @@ -251,19 +248,22 @@ AdapterEntry::getProxies(int& nReplicas) } vector<pair<string, AdapterPrx> > adapters; + auto_ptr<NodeUnreachableException> exception; for(vector<ServerEntryPtr>::const_iterator p = servers.begin(); p != servers.end(); ++p) { try { adapters.push_back(make_pair((*p)->getId(), (*p)->getAdapter(_id))); } - catch(const NodeUnreachableException&) + catch(const NodeUnreachableException& ex) { + exception.reset(dynamic_cast<NodeUnreachableException*>(ex.ice_clone())); } } if(adapters.empty()) { - throw NodeUnreachableException(); + assert(exception.get()); + throw *exception.get(); } nReplicas = _replicated ? _loadBalancingNReplicas : 1; |