summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-11-25 22:46:34 +0100
committerMichael Stahl <mstahl@redhat.com>2016-11-29 15:22:55 +0000
commit7661bbbaef31adfdb298b1447301b24a70f85834 (patch)
tree7633298b1af4c211d5a9c66859ec5cd7520134c2 /xmloff
parent3f62d8884358cc2379d39e2b47eabfec7579c0e1 (diff)
tdf#102479 ODF export: ignore exceptions when checking shape text
The bugdoc contains a SwXShape-SwXTextFrame aggregate which contains only a table, no top-level paragraph. Because of that, SwXTextFrame::createTextCursor() throws a RuntimeException. Assuming that the exception itself is intentional, work around it in XMLShapeExport::collectShapeAutoStyles() and assume that the getString() check that was added there in commit 73fcb052edf1a21d785583bc53e8b4323b577bb1 is just a performance optimization; the actual export of auto styles and content uses XEnumerationAccess anyway. Change-Id: I7c23164b1e692ce16e5b4e03dd945e46768677de Reviewed-on: https://gerrit.libreoffice.org/31218 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/source/draw/shapeexport.cxx17
1 files changed, 16 insertions, 1 deletions
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index afcecd4677a9..cdc789157710 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -304,7 +304,22 @@ void XMLShapeExport::collectShapeAutoStyles(const uno::Reference< drawing::XShap
if( xPropSet.is() && bObjSupportsText )
{
uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY);
- if(xText.is() && !xText->getString().isEmpty())
+ bool bSkip = false;
+ if (xText.is())
+ {
+ try
+ {
+ bSkip = xText->getString().isEmpty();
+ }
+ catch (uno::RuntimeException const&)
+ {
+ // tdf#102479: SwXTextFrame that contains only a table will
+ // throw, but the table must be iterated so that
+ // SwXMLExport::ExportTableLines() can find its auto styles
+ // so do not skip it!
+ }
+ }
+ if (!bSkip)
{
uno::Reference< beans::XPropertySetInfo > xPropSetInfo( xPropSet->getPropertySetInfo() );