summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-02-27 14:46:35 +0100
committerJan Holesovsky <kendy@suse.cz>2013-02-28 10:05:00 +0100
commit0a12e1278b2ea6a4a668d610ff3c6a23c5fc6249 (patch)
tree3396910df977dca70653a5aef6023762382fda6a
parentd6d9c1137d4779e82a6060b4a0c74b589eaf9fbe (diff)
fdo#53985 DOCX import: don't try to set empty PageDescName
Regression from 50cb1667020494906afaacb68d4163d1eda527cf. Change-Id: Ie04d5ad37555ed4cfeb34ccb8dc021675fbd25ea Conflicts: sw/qa/extras/ooxmlimport/ooxmlimport.cxx Signed-off-by: Jan Holesovsky <kendy@suse.cz>
-rw-r--r--sw/qa/extras/ooxmlimport/data/fdo53985.docxbin0 -> 20115 bytes
-rw-r--r--sw/qa/extras/ooxmlimport/ooxmlimport.cxx11
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx15
3 files changed, 25 insertions, 1 deletions
diff --git a/sw/qa/extras/ooxmlimport/data/fdo53985.docx b/sw/qa/extras/ooxmlimport/data/fdo53985.docx
new file mode 100644
index 000000000000..0c8b32fb671f
--- /dev/null
+++ b/sw/qa/extras/ooxmlimport/data/fdo53985.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 69dc0cbfc779..2c32f133ecfa 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -111,6 +111,7 @@ public:
void testN780645();
void testFineTableDash();
void testN779642();
+ void testFdo53985();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -174,6 +175,7 @@ void Test::run()
{"n780645.docx", &Test::testN780645},
{"tableborder-finedash.docx", &Test::testFineTableDash},
{"n779642.docx", &Test::testN779642},
+ {"fdo53985.docx", &Test::testFdo53985},
};
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
{
@@ -1085,6 +1087,15 @@ void Test::testN779642()
CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong vertical orientation relation", nValue, text::RelOrientation::PAGE_PRINT_AREA);
}
+void Test::testFdo53985()
+{
+ // Unhandled excetion prevented import of the rest of the document.
+
+ uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(5), xTables->getCount()); // Only 4 tables were imported.
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index c2fe9ef9d86b..8f19057bc6f1 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -840,7 +840,20 @@ void SectionPropertyMap::CloseSectionGroup( DomainMapper_Impl& rDM_Impl )
ApplyColumnProperties( xSection );
uno::Reference<beans::XPropertySet> xRangeProperties(lcl_GetRangeProperties(m_bIsFirstSection, rDM_Impl, m_xStartingRange));
if (xRangeProperties.is())
- xRangeProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_PAGE_DESC_NAME), uno::makeAny(m_bTitlePage ? m_sFirstPageStyleName : m_sFollowPageStyleName));
+ {
+ OUString aName = m_bTitlePage ? m_sFirstPageStyleName : m_sFollowPageStyleName;
+ if (!aName.isEmpty())
+ {
+ try
+ {
+ xRangeProperties->setPropertyValue(rPropNameSupplier.GetName(PROP_PAGE_DESC_NAME), uno::makeAny(aName));
+ }
+ catch( const uno::Exception& )
+ {
+ SAL_WARN("writerfilter", "failed to set PageDescName!");
+ }
+ }
+ }
}
// If the section is of type "New column" (0x01), then simply insert a column break.
// But only if there actually are columns on the page, otherwise a column break