summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/LocatorI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/LocatorI.cpp')
-rw-r--r--cpp/src/IceGrid/LocatorI.cpp29
1 files changed, 18 insertions, 11 deletions
diff --git a/cpp/src/IceGrid/LocatorI.cpp b/cpp/src/IceGrid/LocatorI.cpp
index d038ccae641..2db95739e9a 100644
--- a/cpp/src/IceGrid/LocatorI.cpp
+++ b/cpp/src/IceGrid/LocatorI.cpp
@@ -653,6 +653,9 @@ LocatorI::findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& cb,
Ice::ObjectPrx proxy;
try
{
+#if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600)
+ IceUtil::DummyBCC dummy;
+#endif
proxy = _database->getObjectProxy(id);
}
catch(const ObjectNotRegisteredException&)
@@ -701,7 +704,7 @@ LocatorI::findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& cb,
int count;
LocatorAdapterInfoSeq adapters;
bool roundRobin;
- _database->getAdapter(id)->getLocatorAdapterInfo(adapters, count, replicaGroup, roundRobin);
+ _database->getLocatorAdapterInfo(id, adapters, count, replicaGroup, roundRobin);
RequestPtr request;
if(roundRobin)
{
@@ -717,18 +720,10 @@ LocatorI::findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& cb,
request = new AdapterRequest(cb, self, adapters[0]);
}
request->execute();
+ return;
}
catch(const AdapterNotExistException&)
{
- try
- {
- cb->ice_response(_database->getAdapterDirectProxy(id));
- }
- catch(const AdapterNotExistException&)
- {
- cb->ice_exception(Ice::AdapterNotFoundException());
- }
- return;
}
catch(const Ice::Exception& ex)
{
@@ -748,6 +743,18 @@ LocatorI::findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& cb,
cb->ice_response(0);
return;
}
+
+ try
+ {
+#if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600)
+ IceUtil::DummyBCC dummy;
+#endif
+ cb->ice_response(_database->getAdapterDirectProxy(id));
+ }
+ catch(const AdapterNotExistException&)
+ {
+ cb->ice_exception(Ice::AdapterNotFoundException());
+ }
}
Ice::LocatorRegistryPrx
@@ -892,5 +899,5 @@ LocatorI::getAdapterInfo(const string& id,
bool& roundRobin,
const set<string>& excludes)
{
- _database->getAdapter(id)->getLocatorAdapterInfo(adapters, count, replicaGroup, roundRobin, excludes);
+ _database->getLocatorAdapterInfo(id, adapters, count, replicaGroup, roundRobin, excludes);
}