diff options
author | Andreas Schlüns <as@openoffice.org> | 2002-05-24 10:33:59 +0000 |
---|---|---|
committer | Andreas Schlüns <as@openoffice.org> | 2002-05-24 10:33:59 +0000 |
commit | 613233b847bf1f735a9d2f7f71069651e5419d72 (patch) | |
tree | 51878dcc2f3093d2baa85be744b8bbd951527f45 /framework/source/services/desktop.cxx | |
parent | 20517fab645cd30db6f1ed0f4263e2d20c48ae43 (diff) |
#99101# catch disposed exceptions for broken listener connections
Diffstat (limited to 'framework/source/services/desktop.cxx')
-rw-r--r-- | framework/source/services/desktop.cxx | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx index ab8b372a3892..94a66dae76cd 100644 --- a/framework/source/services/desktop.cxx +++ b/framework/source/services/desktop.cxx @@ -2,9 +2,9 @@ * * $RCSfile: desktop.cxx,v $ * - * $Revision: 1.38 $ + * $Revision: 1.39 $ * - * last change: $Author: as $ $Date: 2002-05-23 12:53:37 $ + * last change: $Author: as $ $Date: 2002-05-24 11:33:30 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -2180,7 +2180,14 @@ void Desktop::impl_sendQueryTerminationEvent() throw( css::frame::TerminationVet // We don't look for that(!) ... caller of this method will catch these. while( aIterator.hasMoreElements() == sal_True ) { - ((css::frame::XTerminateListener*)aIterator.next())->queryTermination( aEvent ); + try + { + ((css::frame::XTerminateListener*)aIterator.next())->queryTermination( aEvent ); + } + catch( css::uno::RuntimeException& ) + { + aIterator.remove(); + } } } } @@ -2204,7 +2211,14 @@ void Desktop::impl_sendNotifyTerminationEvent() // Send message to all listener. while( aIterator.hasMoreElements() == sal_True ) { - ((css::frame::XTerminateListener*)aIterator.next())->notifyTermination( aEvent ); + try + { + ((css::frame::XTerminateListener*)aIterator.next())->notifyTermination( aEvent ); + } + catch( css::uno::RuntimeException& ) + { + aIterator.remove(); + } } } } |