diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-02-22 12:28:06 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-02-23 09:06:16 +0100 |
commit | 5e1a50cc433a865da677faf7d502ba41858e45f6 (patch) | |
tree | 97e4724cc593251e7a35f90771a251fcd0d94c12 | |
parent | a2e53070ca807e1974c462d9ae8f7098990c9356 (diff) |
tdf#115883 DOCX import: catch RuntimeException from SwXFrame
getPropertyValue("Surround") for a non-inserted frame can throw, but
hasPropertyValue("Surround") still returns true. So fix the regression
by just catching the exception, assuming that in that case no increased
spacing is needed.
Change-Id: I49a78ce8d41b4e1cc7d23721d5dc70f7550c94af
Reviewed-on: https://gerrit.libreoffice.org/50175
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
-rw-r--r-- | sw/qa/extras/ooxmlimport/data/tdf115883.docx | bin | 0 -> 33313 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 6 | ||||
-rw-r--r-- | writerfilter/source/dmapper/PropertyMap.cxx | 9 |
3 files changed, 14 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlimport/data/tdf115883.docx b/sw/qa/extras/ooxmlimport/data/tdf115883.docx Binary files differnew file mode 100644 index 000000000000..f90ac638d7a4 --- /dev/null +++ b/sw/qa/extras/ooxmlimport/data/tdf115883.docx diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx index 1bf57d5d23ff..6e181a87a9b9 100644 --- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx @@ -684,6 +684,12 @@ DECLARE_OOXMLIMPORT_TEST(testTdf105975formula, "tdf105975.docx") CPPUNIT_ASSERT_EQUAL(OUString("25"), xEnumerationAccess->getPresentation(false).trim()); } +DECLARE_OOXMLIMPORT_TEST(testTdf115883, "tdf115883.docx") +{ + // Import failed due to an unhandled exception when getting the Surround + // property of a not yet inserted frame. +} + DECLARE_OOXMLIMPORT_TEST(testTdf75573, "tdf75573_page1frame.docx") { // the problem was that the frame was discarded diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx index 89c9927c302d..8cbb6c6eff4b 100644 --- a/writerfilter/source/dmapper/PropertyMap.cxx +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -1220,7 +1220,14 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl ) } rPendingFloatingTables.clear(); - HandleIncreasedAnchoredObjectSpacing(rDM_Impl); + try + { + HandleIncreasedAnchoredObjectSpacing(rDM_Impl); + } + catch (const uno::Exception& rException) + { + SAL_WARN("writerfilter", "HandleIncreasedAnchoredObjectSpacing() failed: " << rException); + } if ( m_nLnnMod ) { |