summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ServantManager.cpp
diff options
context:
space:
mode:
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;
}