diff options
-rw-r--r-- | connectivity/source/commontools/dbtools.cxx | 10 | ||||
-rw-r--r-- | include/connectivity/OSubComponent.hxx | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/connectivity/source/commontools/dbtools.cxx b/connectivity/source/commontools/dbtools.cxx index 701c64d7e63d..1c1dbfe150a9 100644 --- a/connectivity/source/commontools/dbtools.cxx +++ b/connectivity/source/commontools/dbtools.cxx @@ -1965,7 +1965,7 @@ namespace connectivity void release(oslInterlockedCount& _refCount, ::cppu::OBroadcastHelper& rBHelper, Reference< XInterface >& _xInterface, - css::lang::XComponent* _pObject) + css::lang::XComponent* _pObject) throw () { if (osl_atomic_decrement( &_refCount ) == 0) { @@ -1982,7 +1982,13 @@ void release(oslInterlockedCount& _refCount, } // First dispose - _pObject->dispose(); + try { + _pObject->dispose(); + } catch (css::uno::RuntimeException & e) { + SAL_WARN( + "connectivity.commontools", + "Caught exception during dispose, " << e.Message); + } // only the alive ref holds the object OSL_ASSERT( _refCount == 1 ); diff --git a/include/connectivity/OSubComponent.hxx b/include/connectivity/OSubComponent.hxx index 8f80e8eea2a5..1955c543da52 100644 --- a/include/connectivity/OSubComponent.hxx +++ b/include/connectivity/OSubComponent.hxx @@ -43,7 +43,7 @@ namespace connectivity void release(oslInterlockedCount& _refCount, ::cppu::OBroadcastHelper& rBHelper, css::uno::Reference< css::uno::XInterface >& _xInterface, - css::lang::XComponent* _pObject); + css::lang::XComponent* _pObject) throw (); // OSubComponent @@ -70,7 +70,7 @@ namespace connectivity ::osl::MutexGuard aGuard( m_pDerivedImplementation->WEAK::rBHelper.rMutex ); m_xParent.clear(); } - void relase_ChildImpl() + void relase_ChildImpl() throw () { #if 0 ::connectivity::release(m_pDerivedImplementation->m_refCount, |