summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-04-26 11:46:57 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-04-26 13:03:49 +0200
commit6238cfe27f0a202f3fbf482cde2b0a3189adc86f (patch)
treea9658a67913edf6a8bc5b0c26a73b82406b25495
parent484d75feb3518976434dfdb883d283c6fdca9c9f (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
-rw-r--r--comphelper/source/container/embeddedobjectcontainer.cxx15
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