diff options
-rw-r--r-- | cpp/src/Freeze/ConnectionI.cpp | 10 | ||||
-rw-r--r-- | cpp/src/Freeze/MapDb.cpp | 3 | ||||
-rw-r--r-- | cpp/src/Freeze/ObjectStore.cpp | 10 |
3 files changed, 20 insertions, 3 deletions
diff --git a/cpp/src/Freeze/ConnectionI.cpp b/cpp/src/Freeze/ConnectionI.cpp index 18c3f2449e1..85b8642027e 100644 --- a/cpp/src/Freeze/ConnectionI.cpp +++ b/cpp/src/Freeze/ConnectionI.cpp @@ -153,7 +153,15 @@ Freeze::ConnectionI::__getRefNoSync() const Freeze::ConnectionI::~ConnectionI() { - close(); + try + { + close(); + } + catch(const DatabaseException& ex) + { + Ice::Error error(_communicator->getLogger()); + error << "Freeze: closing connection Freeze.DbEnv: " << _envName << " raised DatabaseException: " << ex.what(); + } } Freeze::ConnectionI::ConnectionI(const SharedDbEnvPtr& dbEnv) : diff --git a/cpp/src/Freeze/MapDb.cpp b/cpp/src/Freeze/MapDb.cpp index 075115fb162..c8ce865f64a 100644 --- a/cpp/src/Freeze/MapDb.cpp +++ b/cpp/src/Freeze/MapDb.cpp @@ -72,7 +72,8 @@ Freeze::MapDb::~MapDb() } catch(const ::DbException& dx) { - throw DatabaseException(__FILE__, __LINE__, dx.what()); + Ice::Error error(_communicator->getLogger()); + error << "Freeze.Map: closing Db " << _dbName << " raised DbException: " << dx.what(); } } } diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp index 55d5e243c66..189ffe4ad49 100644 --- a/cpp/src/Freeze/ObjectStore.cpp +++ b/cpp/src/Freeze/ObjectStore.cpp @@ -208,7 +208,15 @@ Freeze::ObjectStoreBase::~ObjectStoreBase() for(size_t i = 0; i < _indices.size(); ++i) { - _indices[i]->_impl->close(); + try + { + _indices[i]->_impl->close(); + } + catch(const DatabaseException& ex) + { + Ice::Error error(_communicator->getLogger()); + error << "Freeze: closing ObjectStore " << _dbName << " raised DatabaseException: " << ex.what(); + } } _indices.clear(); } |