diff --git a/Foundation/include/Poco/ObjectPool.h b/Foundation/include/Poco/ObjectPool.h index a797b0c5f..4e2b1cc33 100644 --- a/Foundation/include/Poco/ObjectPool.h +++ b/Foundation/include/Poco/ObjectPool.h @@ -244,18 +244,18 @@ public: _factory.deactivateObject(pObject); if (_pool.size() < _capacity) { - _pool.push_back(pObject); - } - else - { - _factory.destroyObject(pObject); - _size--; + try + { + _pool.push_back(pObject); + return; + } + catch (...) + { + } } } - else - { - _factory.destroyObject(pObject); - } + _factory.destroyObject(pObject); + _size--; } std::size_t capacity() const