fixed GH #1300: Session constructor hangs

This commit is contained in:
Guenter Obiltschnig 2016-07-03 14:13:40 +02:00
parent d01110db59
commit dd941cbad1

View File

@ -65,11 +65,14 @@ Session SessionFactory::create(const std::string& key,
const std::string& connectionString, const std::string& connectionString,
std::size_t timeout) std::size_t timeout)
{ {
Poco::FastMutex::ScopedLock lock(_mutex); Poco::SharedPtr<Connector> ptrSI;
Connectors::iterator it = _connectors.find(key); {
poco_assert (_connectors.end() != it); Poco::FastMutex::ScopedLock lock(_mutex);
Connectors::iterator it = _connectors.find(key);
return Session(it->second.ptrSI->createSession(connectionString, timeout)); if (_connectors.end() == it) throw Poco::NotFoundException(key);
ptrSI = it->second.ptrSI;
}
return Session(ptrSI->createSession(connectionString, timeout));
} }