summaryrefslogtreecommitdiff
path: root/framework/source/services/desktop.cxx
diff options
context:
space:
mode:
authorAndreas Schlüns <as@openoffice.org>2002-05-24 10:33:59 +0000
committerAndreas Schlüns <as@openoffice.org>2002-05-24 10:33:59 +0000
commit613233b847bf1f735a9d2f7f71069651e5419d72 (patch)
tree51878dcc2f3093d2baa85be744b8bbd951527f45 /framework/source/services/desktop.cxx
parent20517fab645cd30db6f1ed0f4263e2d20c48ae43 (diff)
#99101# catch disposed exceptions for broken listener connections
Diffstat (limited to 'framework/source/services/desktop.cxx')
-rw-r--r--framework/source/services/desktop.cxx22
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();
+ }
}
}
}