sw/qa/extras/ooxmlimport/data/fdo53985.docx |binary
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx    |   11 +++++++++++
 writerfilter/source/dmapper/PropertyMap.cxx |   15 ++++++++++++++-
 3 files changed, 25 insertions(+), 1 deletion(-)

New commits:
commit 0a12e1278b2ea6a4a668d610ff3c6a23c5fc6249
Author: Miklos Vajna <vmik...@suse.cz>
Date:   Wed Feb 27 14:46:35 2013 +0100

    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 <ke...@suse.cz>

diff --git a/sw/qa/extras/ooxmlimport/data/fdo53985.docx 
b/sw/qa/extras/ooxmlimport/data/fdo53985.docx
new file mode 100644
index 0000000..0c8b32f
Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/fdo53985.docx differ
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx 
b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index 69dc0cb..2c32f13 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 c2fe9ef..8f19057 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
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to