diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-11-19 18:36:49 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-11-20 08:34:50 +0100 |
commit | 9dc7bae64d1c08e06c755ea97c21e50bd6a8eec1 (patch) | |
tree | 04c8e9948313084fbe0398a58ceca69e5eb6fab5 /framework | |
parent | 5252652ac57b3358db6cc0d423cc3d67882b5e90 (diff) |
Revert "coverity#1169848 Uncaught exception"
This reverts commit b0a7722ebfa720255b6ce1e383a3aacae0ce5e9f, now that
fced31697bcc2a2a4da34d804582002de0320302 "comphelper::SequenceAsHashMap: throw
IllegalArgumentException" made the underlying problem go away.
Conflicts:
framework/source/services/modulemanager.cxx
Change-Id: I6599cf25d4f28d2bab19da67d5de5caacd84a622
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/services/modulemanager.cxx | 86 |
1 files changed, 38 insertions, 48 deletions
diff --git a/framework/source/services/modulemanager.cxx b/framework/source/services/modulemanager.cxx index 7a3cee7dcc1f..cdb176359dd8 100644 --- a/framework/source/services/modulemanager.cxx +++ b/framework/source/services/modulemanager.cxx @@ -235,59 +235,49 @@ void SAL_CALL ModuleManager::replaceByName(const OUString& sName , css::lang::WrappedTargetException , css::uno::RuntimeException, std::exception ) { - try + ::comphelper::SequenceAsHashMap lProps(aValue); + if (lProps.empty() ) { - ::comphelper::SequenceAsHashMap lProps(aValue); - if (lProps.empty() ) - { - throw css::lang::IllegalArgumentException( - OUString("No properties given to replace part of module."), - static_cast< cppu::OWeakObject * >(this), - 2); - } - - // get access to the element - // Note: Dont use impl_getConfig() method here. Because it creates a readonly access only, further - // it cache it as a member of this module manager instance. If we change some props there ... but dont - // flush changes (because an error occurred) we will read them later. If we use a different config access - // we can close it without a flush ... and our read data wont be affected .-) - css::uno::Reference< css::uno::XInterface > xCfg = ::comphelper::ConfigurationHelper::openConfig( - m_xContext, - "/org.openoffice.Setup/Office/Factories", - ::comphelper::ConfigurationHelper::E_STANDARD); - css::uno::Reference< css::container::XNameAccess > xModules (xCfg, css::uno::UNO_QUERY_THROW); - css::uno::Reference< css::container::XNameReplace > xModule; - - xModules->getByName(sName) >>= xModule; - if (!xModule.is()) - { - throw css::uno::RuntimeException( - OUString("Was not able to get write access to the requested module entry inside configuration."), - static_cast< cppu::OWeakObject * >(this)); - } - - ::comphelper::SequenceAsHashMap::const_iterator pProp; - for ( pProp = lProps.begin(); - pProp != lProps.end(); - ++pProp ) - { - const OUString& sPropName = pProp->first; - const css::uno::Any& aPropValue = pProp->second; - - // let "NoSuchElementException" out ! We support the same API ... - // and without a flush() at the end all changed data before will be ignored ! - xModule->replaceByName(sPropName, aPropValue); - } + throw css::lang::IllegalArgumentException( + OUString("No properties given to replace part of module."), + static_cast< cppu::OWeakObject * >(this), + 2); + } - ::comphelper::ConfigurationHelper::flush(xCfg); + // get access to the element + // Note: Dont use impl_getConfig() method here. Because it creates a readonly access only, further + // it cache it as a member of this module manager instance. If we change some props there ... but dont + // flush changes (because an error occurred) we will read them later. If we use a different config access + // we can close it without a flush ... and our read data wont be affected .-) + css::uno::Reference< css::uno::XInterface > xCfg = ::comphelper::ConfigurationHelper::openConfig( + m_xContext, + "/org.openoffice.Setup/Office/Factories", + ::comphelper::ConfigurationHelper::E_STANDARD); + css::uno::Reference< css::container::XNameAccess > xModules (xCfg, css::uno::UNO_QUERY_THROW); + css::uno::Reference< css::container::XNameReplace > xModule ; + + xModules->getByName(sName) >>= xModule; + if (!xModule.is()) + { + throw css::uno::RuntimeException( + OUString("Was not able to get write access to the requested module entry inside configuration."), + static_cast< cppu::OWeakObject * >(this)); } - catch (const css::beans::IllegalTypeException& e) + + ::comphelper::SequenceAsHashMap::const_iterator pProp; + for ( pProp = lProps.begin(); + pProp != lProps.end() ; + ++pProp ) { - css::uno::Any a(e); - throw css::lang::WrappedTargetException( - OUString("ModuleManager::replaceByName: IllegalType exception"), - css::uno::Reference<css::uno::XInterface>(*this), a); + const OUString& sPropName = pProp->first; + const css::uno::Any& aPropValue = pProp->second; + + // let "NoSuchElementException" out ! We support the same API ... + // and without a flush() at the end all changed data before will be ignored ! + xModule->replaceByName(sPropName, aPropValue); } + + ::comphelper::ConfigurationHelper::flush(xCfg); } css::uno::Any SAL_CALL ModuleManager::getByName(const OUString& sName) |