summaryrefslogtreecommitdiff
path: root/framework/source/accelerators/storageholder.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/accelerators/storageholder.cxx')
-rw-r--r--framework/source/accelerators/storageholder.cxx17
1 files changed, 11 insertions, 6 deletions
diff --git a/framework/source/accelerators/storageholder.cxx b/framework/source/accelerators/storageholder.cxx
index 1cf4ca98719d..99c67af297e0 100644
--- a/framework/source/accelerators/storageholder.cxx
+++ b/framework/source/accelerators/storageholder.cxx
@@ -383,7 +383,6 @@ css::uno::Reference< css::embed::XStorage > StorageHolder::openSubStorageWithFal
{
// a) try it first with user specified open mode
// ignore errors ... but save it for later use!
- css::uno::Exception exResult;
try
{
css::uno::Reference< css::embed::XStorage > xSubStorage = xBaseStorage->openStorageElement(sSubStorage, eOpenMode);
@@ -391,13 +390,19 @@ css::uno::Reference< css::embed::XStorage > StorageHolder::openSubStorageWithFal
return xSubStorage;
}
catch(const css::uno::RuntimeException&)
- { throw; }
- catch(const css::uno::Exception& ex)
- { exResult = ex; }
+ {
+ throw;
+ }
+ catch(const css::uno::Exception&)
+ {
+ // b) readonly already tried? => forward last error!
+ if ((eOpenMode & css::embed::ElementModes::WRITE) != css::embed::ElementModes::WRITE) // fallback possible ?
+ throw;
+ }
- // b) readonly already tried? => forward last error!
+ // b) readonly already tried, throw error
if ((eOpenMode & css::embed::ElementModes::WRITE) != css::embed::ElementModes::WRITE) // fallback possible ?
- throw exResult;
+ throw css::uno::Exception();
// c) try it readonly
// don't catch exception here! Outside code wish to know, if operation failed or not.