diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-04-26 11:46:57 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@suse.cz> | 2013-04-26 13:03:49 +0200 |
commit | 6238cfe27f0a202f3fbf482cde2b0a3189adc86f (patch) | |
tree | a9658a67913edf6a8bc5b0c26a73b82406b25495 /comphelper | |
parent | 484d75feb3518976434dfdb883d283c6fdca9c9f (diff) |
fdo#58949 EmbeddedObjectContainer: guard against embed::WrongStateException
The problem was that in case an exception was thrown, it was only caught
outside the loop, so in case any error occurred, we didn't even try to
export the remaining objects. At least in case of
embed::WrongStateException, this is safe to do.
Change-Id: I71a7abc45a89bebc667664bc001245bb886a8d83
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/source/container/embeddedobjectcontainer.cxx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx index 87b214e03cbc..a988a1eab92b 100644 --- a/comphelper/source/container/embeddedobjectcontainer.cxx +++ b/comphelper/source/container/embeddedobjectcontainer.cxx @@ -1417,10 +1417,14 @@ sal_Bool EmbeddedObjectContainer::StoreAsChildren(sal_Bool _bOasisFormat,sal_Boo aArgs[2].Value <<= xStream; } - xPersist->storeAsEntry( _xStorage, - xPersist->getEntryName(), - uno::Sequence< beans::PropertyValue >(), - aArgs ); + try + { + xPersist->storeAsEntry( _xStorage, xPersist->getEntryName(), uno::Sequence< beans::PropertyValue >(), aArgs ); + } + catch (const embed::WrongStateException& e) + { + SAL_WARN("comphelper", "failed to store '" << *pIter << "'"); + } } if ( bSwitchBackToLoaded ) @@ -1432,10 +1436,11 @@ sal_Bool EmbeddedObjectContainer::StoreAsChildren(sal_Bool _bOasisFormat,sal_Boo bResult = aCnt.CommitImageSubStorage(); } - catch (const uno::Exception&) + catch (const uno::Exception& e) { // TODO/LATER: error handling bResult = sal_False; + SAL_WARN("comphelper", "failed. Message: " << e.Message); } // the old SO6 format does not store graphical replacements |