summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-06-07 10:05:35 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2016-06-07 20:02:51 +0000
commit24f1beffe30e68ad6f19ced885dbee0ba99a7b75 (patch)
tree8095a0629c89c7314b7c80bb8ce54140d3bb9689 /sc
parent561695d21d92a1911fbf64bf1231d0eaae3e67e6 (diff)
Resolves: tdf#88237 crash without java but with nlp solver installed
Change-Id: Ifb451c299e4586a3a38c83a3111f3ac0b46d9315 (cherry picked from commit a33d18c1e38dd783e779ca1dbf54e1ad90cae751) (cherry picked from commit 07c32ba5f81a3d2ed66ee182b8a7772d20c4266f) Reviewed-on: https://gerrit.libreoffice.org/26007 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/miscdlgs/solverutil.cxx35
1 files changed, 21 insertions, 14 deletions
diff --git a/sc/source/ui/miscdlgs/solverutil.cxx b/sc/source/ui/miscdlgs/solverutil.cxx
index e047cb9f436a..b7a19f45e82c 100644
--- a/sc/source/ui/miscdlgs/solverutil.cxx
+++ b/sc/source/ui/miscdlgs/solverutil.cxx
@@ -65,20 +65,27 @@ void ScSolverUtil::GetImplementations( uno::Sequence<OUString>& rImplNames,
OUString sName = xInfo->getImplementationName();
OUString sDescription;
- uno::Reference<sheet::XSolver> xSolver(
- xCFac->createInstanceWithContext(xCtx), uno::UNO_QUERY );
- uno::Reference<sheet::XSolverDescription> xDesc( xSolver, uno::UNO_QUERY );
- if ( xDesc.is() )
- sDescription = xDesc->getComponentDescription();
-
- if ( sDescription.isEmpty() )
- sDescription = sName; // use implementation name if no description available
-
- rImplNames.realloc( nCount+1 );
- rImplNames[nCount] = sName;
- rDescriptions.realloc( nCount+1 );
- rDescriptions[nCount] = sDescription;
- ++nCount;
+ try
+ {
+ uno::Reference<sheet::XSolver> xSolver(
+ xCFac->createInstanceWithContext(xCtx), uno::UNO_QUERY );
+ uno::Reference<sheet::XSolverDescription> xDesc( xSolver, uno::UNO_QUERY );
+ if ( xDesc.is() )
+ sDescription = xDesc->getComponentDescription();
+
+ if ( sDescription.isEmpty() )
+ sDescription = sName; // use implementation name if no description available
+
+ rImplNames.realloc( nCount+1 );
+ rImplNames[nCount] = sName;
+ rDescriptions.realloc( nCount+1 );
+ rDescriptions[nCount] = sDescription;
+ ++nCount;
+ }
+ catch (const css::uno::Exception& e)
+ {
+ SAL_INFO("sc", "ScSolverUtil::GetImplementations: cannot instantiate: " << sName << ", because: " << e.Message);
+ }
}
}
}