https://bugs.documentfoundation.org/show_bug.cgi?id=117842
--- Comment #11 from Mike Kaganski <mikekagan...@hotmail.com> --- In "normal" case, the XConnection (that gets passed to FirebirdDriver::getDataDefinitionByConnection) is created in OPoolCollection::getConnectionWithInfo using a simple call to xDriver->connect. Given that xDriver is connectivity::firebird::FirebirdDriver, the resulting object is connectivity::firebird::Connection. In pooling case, OPoolCollection::getConnectionWithInfo takes another branch, and creates the XConnection using a call to pConnectionPool->getConnectionWithInfo, and that ends up in connectivity::OPooledConnection::getConnection, which wraps "m_xRealConnection" (which is the connectivity::firebird::Connection, also obtained from FirebirdDriver) into a connectivity::OConnectionWeakWrapper. So back in FirebirdDriver::getDataDefinitionByConnection, rConnection (which, as described, may be of different actual classes) is unconditionally cast to connectivity::firebird::Connection. Hence the crash. -- You are receiving this mail because: You are the assignee for the bug.