summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-03-27 09:47:55 +0000
committerEike Rathke <erack@redhat.com>2014-03-27 18:49:39 +0000
commit4d3553cb4d6a8ad439e36a694e788668b4a6003a (patch)
treec5bfbf4ad22612498f4f906e2bb33e1c9774ce61 /sc
parent8010d3fa464814082d89a63ce1089cfa6be2e969 (diff)
fdo#62155 - don't crash if we can't create an instance of a calc addin.
Change-Id: I478d7777949683a91e7adf9fa6b54e9d01ced676 Reviewed-on: https://gerrit.libreoffice.org/8771 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/tool/addincol.cxx16
1 files changed, 12 insertions, 4 deletions
diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
index d5c5401317ad..1aa393c659d1 100644
--- a/sc/source/core/tool/addincol.cxx
+++ b/sc/source/core/tool/addincol.cxx
@@ -602,11 +602,19 @@ void ScUnoAddInCollection::LoadComponent( const ScUnoAddInFuncData& rFuncData )
{
OUString aServiceName = aFullName.copy( 0, nPos );
- uno::Reference<lang::XMultiServiceFactory> xServiceFactory = comphelper::getProcessServiceFactory();
- uno::Reference<uno::XInterface> xInterface( xServiceFactory->createInstance( aServiceName ) );
+ try
+ {
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory = comphelper::getProcessServiceFactory();
+ uno::Reference<uno::XInterface> xInterface( xServiceFactory->createInstance( aServiceName ) );
- if (xInterface.is())
- UpdateFromAddIn( xInterface, aServiceName );
+ if (xInterface.is())
+ UpdateFromAddIn( xInterface, aServiceName );
+ }
+ catch (const uno::Exception &)
+ {
+ SAL_WARN ("sc", "Failed to create addin component '"
+ << aServiceName << "'");
+ }
}
}