sw/qa/extras/ooxmlexport/data/floatingtbl_with_formula.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 9 +++++++++ sw/source/core/ole/ndole.cxx | 5 +++-- 3 files changed, 12 insertions(+), 2 deletions(-)
New commits: commit bee397a1e35fbc2717c56a8bd4a631ccfc185b6b Author: Tushar Bende <tushar.be...@synerzip.com> Date: Mon Dec 9 19:13:36 2013 +0530 fdo#68211: Fix for "General input/output error" while opening file Description: Docx containing floating table with formula was giving "General input/output error" while opening in LibreOffice. Reason being within xLoader->filter() it was calling EmbeddedObjectContainer::RemoveEmbeddedObject() with bClose value as sal_True(default value in function declaration) and hence it was removing embedded object from container and also it was closing it.Fix includes passing this bClose value as sal_false (which means remove object from container but don't close it.) verified code changes for various floating table docx and normal docx containing tables and formulas. Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport.cxx Reviewed on: https://gerrit.libreoffice.org/7009 Change-Id: I9c2d3f8c4099f9f753b2a1b027f9072cd4effeb5 diff --git a/sw/qa/extras/ooxmlexport/data/floatingtbl_with_formula.docx b/sw/qa/extras/ooxmlexport/data/floatingtbl_with_formula.docx new file mode 100644 index 0000000..ecabbd6 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/floatingtbl_with_formula.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index 7428200..aede328 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -2136,6 +2136,15 @@ DECLARE_OOXMLEXPORT_TEST(testCrashWhileSave, "testCrashWhileSave.docx") CPPUNIT_ASSERT(getXPath(pXmlDoc, "/w:ftr/w:tbl/w:tr/w:tc[1]/w:p[1]/w:pPr/w:pStyle", "val").match("Normal")); } +DECLARE_OOXMLEXPORT_TEST(testFileOpenInputOutputError,"floatingtbl_with_formula.docx") +{ + // Docx containing Floating table with formula was giving "General input/output error" while opening in LibreOffice + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + if (!pXmlDoc) + return; + assertXPath(pXmlDoc, "/w:document/w:body/w:p[1]/w:pPr/w:pStyle", "val", "Normal"); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/core/ole/ndole.cxx b/sw/source/core/ole/ndole.cxx index e3793af..6473912 100644 --- a/sw/source/core/ole/ndole.cxx +++ b/sw/source/core/ole/ndole.cxx @@ -715,10 +715,11 @@ SwOLEObj::~SwOLEObj() // successful closing of the object will automatically clear the reference then xOLERef.Lock(sal_False); - // Always remove object from conteiner it is connected to + // Always remove object from container it is connected to try { - pCnt->RemoveEmbeddedObject( aName ); + // remove object from container but don't close it + pCnt->RemoveEmbeddedObject( aName, sal_False); } catch ( uno::Exception& ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits