From 6238cfe27f0a202f3fbf482cde2b0a3189adc86f Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 26 Apr 2013 11:46:57 +0200 Subject: 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 --- comphelper/source/container/embeddedobjectcontainer.cxx | 15 ++++++++++----- 1 file 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 -- cgit v1.2.3