summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-06-07 10:05:35 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-06-07 10:06:06 +0100
commit07c32ba5f81a3d2ed66ee182b8a7772d20c4266f (patch)
treeb0a1a2d5cd0f59ef3c04bae8aa17bcf28d173bdb
parent848737eb576555f7c01d2159a9cf64d020dc2598 (diff)
Resolves: tdf#88237 crash without java but with nlp solver installed
Change-Id: Ifb451c299e4586a3a38c83a3111f3ac0b46d9315 (cherry picked from commit a33d18c1e38dd783e779ca1dbf54e1ad90cae751)
-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);
+ }
}
}
}