summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdapterCache.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-09-19 11:33:43 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-09-19 11:33:43 +0000
commit642a066529ba18a12e2a5e6f91b4c67bb4c3d6e3 (patch)
treef7eaa7d966e2b90979b40dc676c5b5528bcdd60c /cpp/src/IceGrid/AdapterCache.cpp
parentAdded simple demo (diff)
downloadice-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.cpp12
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;