summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ServantManager.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2009-09-10 01:18:39 +0200
committerJose <jose@zeroc.com>2009-09-10 01:18:39 +0200
commit58115b73754da3af2e0bb7a55f0815e6391e0d40 (patch)
treef6c6b464abfe64b1aeb476d08bc58a2d4b1ad2f4 /cpp/src/Ice/ServantManager.cpp
parentminor fixes in demo/Freeze/library/build.xml (diff)
downloadice-58115b73754da3af2e0bb7a55f0815e6391e0d40.tar.bz2
ice-58115b73754da3af2e0bb7a55f0815e6391e0d40.tar.xz
ice-58115b73754da3af2e0bb7a55f0815e6391e0d40.zip
2564 - ObjectAdapter::removeServantLocator
Diffstat (limited to 'cpp/src/Ice/ServantManager.cpp')
-rw-r--r--cpp/src/Ice/ServantManager.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/cpp/src/Ice/ServantManager.cpp b/cpp/src/Ice/ServantManager.cpp
index 146219aabc0..080ba9ee042 100644
--- a/cpp/src/Ice/ServantManager.cpp
+++ b/cpp/src/Ice/ServantManager.cpp
@@ -361,15 +361,17 @@ IceInternal::ServantManager::removeServantLocator(const string& category)
p = _locatorMap.find(category);
}
- ServantLocatorPtr locator;
-
- if(p != _locatorMap.end())
+ if(p == _locatorMap.end())
{
- locator = p->second;
- _locatorMap.erase(p);
- _locatorMapHint = _locatorMap.begin();
+ NotRegisteredException ex(__FILE__, __LINE__);
+ ex.kindOfObject = "servant locator";
+ ex.id = IceUtilInternal::escapeString(category, "");
+ throw ex;
}
+ ServantLocatorPtr locator = p->second;
+ _locatorMap.erase(p);
+ _locatorMapHint = _locatorMap.begin();
return locator;
}