Apache OpenOffice (AOO) Bugzilla – Issue 91146
Negated large arrays slow application
Last modified: 2013-08-07 15:14:39 UTC
When attempting to open an Excel document in OpenOffice, the document will crash. Removal of the nested formulas allow for the document to open readily; however, the re-nesting of the formulas cause errors to be displayed. Steps for Duplication: Open any of the two attached Excel documents in OpenOffice. Result: Program crashes Open the document in Excel and remove the nested formulas Result: Document opens normally Return the nested formula into the converted spreadsheet Result: Error messages are displayed Enter individual formula Result: expected computations are returned
Created attachment 54791 [details] Test Summation has nested formulas
Created attachment 54792 [details] Test Case Doc
In version OOo-dev300-m21_en,when I tried to open the attachment in Calc,it crashed.but when I opened it in MS_Excel,I couldn't find the Nested formulas mentioned in the report,so I don't know whether the rest 2 problems still exist.In addition ,when I made a new ms_excel document with Nested formulas,and then opened it in Calc,it worked well. Sorry if it's not clear enough.
validating only on Windows XP(只在Winsows Xp中进行了验证)
In the documents that were enclosed, the nested formulas are on the "Test Case Summary Pass" # tab of the Test Tracking document, under the section called "Roll Up Columns". Specifically the formulas such as "=IF(AND((ISERROR (SEARCH("Pass",$F8))),(ISERROR(SEARCH("Warn",$F8))),(ISERROR(SEARCH("Closed", $F8)))),0,1)" I remember the formula to be on the Executive Summary tab of the Test Cases Document, but also remember it being two distinctly different types of formulas to which I'm not locating now. My guess, without retesting is that the offending formula is the "=INDIRECT("'"&C$1&"'"&"!j"&ROW()+1)" but it doesn't look quite right to me. I'm currently having system problems and will refind the exact formula once my system is replaced later today; however, the formulas within the Test Tracking document is the one that crashes the application upon conversion and should be able to get the process rolling until I get my system back up and working properly.
Hi Daniel, please have a look
DR->ER: DEV300m24 hangs somewhere in ScModelObj::UpdateAllRowHeights, but does not crash.
Hi calligra, I have test many times, I don't think the question happens in "Test Case Summary Pass" # tab of the Test Tracking document, but "All- Cumulative" table. And the problem may be caused by formulas: =SUMPRODUCT(--('IntSysTest Bugs'!$E$1:$E$4752<>7),--('IntSysTest Bugs'! $C$1:$C$4752= $A$384)). And tracking the code, I found something is wrong when the program interpretting the formula SUMPRODUCT, but the reason I did not find yet. BTW, the doc UDT Test Cases TEST.xls can be opened, not crash, not hang, just the formulas' result is not correct.
Hi Ivyue, It's odd that you were able to open the Test Cases document whilest no one here in the office can and neither could your co-worker chl207. Possibly a versioning difference? I know that I'm using version 2.4; however, I am unaware of what versions my co-workers are using. In any case, I'm happy to see that some work is being done for these issues and eagerly anticipate ensuent results.
Created attachment 55552 [details] patch 1 for i91146
Hi Eike, I found there is something wrong with such formula: SUMPRODUCT(-Ref;.....), it will create a jumpmatrix, and then jump many times. If the Ref is very big and if a document contains many such formulas, the document will freeze. So I add ocNegSub in const ScParameterClassification::RawData ScParameterClassification::pRawData[], like ocNeg, to avoid creating a jumpmatrix. now UDT Test Trackingtoo.xls can be opened normally. That is what I do in this patch. And for doc UDT Test Cases TEST.xls, I tried many versions in my computer, it can be opened, no crash, just some formulas' result is not the same as it in Excel. so what do you want me to do? correct the formulas, or something else?
Indeed, good catch :-) But what exactly are you referring with "just some formulas' result is not the same as it in Excel"?
Thank you :-) And I mean in the first tab "Execution Summary" of UDT Test Cases TEST.xls, such formulas =INDIRECT("'"&C$1&"'"&"!j"&ROW()+1) will all return Err:502, while in Excel they return values.
That's because of the '!' exclamation mark used in Excel as the sheet name separator. INDIRECT() should support that as well, which is issue 30172.
In cws odff05: sc/source/core/tool/parclass.cxx 1.12.148.1 Btw, when loading the first Trackingtoo attachment in a DEV300_m29 non-pro build, a gazillion assertions pop up, Error: ImpBreakLine: Start >= End? From File .../svx/source/editeng/impedit3.cxx at Line 1802 Submitted issue 93790 for that.
Reassigning to QA for verification.
verified in internal build cws_odff05
Verified in DEV310m7. Formulas '=INDIRECT("'"&C$1&"'"&"!j"&ROW()+1)' works well in the first tab "Execution Summary" of UDT Test Cases TEST.xls. The nested formulas are on the "Test Case Summary Pass # " tab of the Test Tracking document, under the section called "Roll Up Columns". Specifically the formulas, such as "=IF(AND((ISERROR(SEARCH("Pass",$F8))),(ISERROR(SEARCH ("Warn",$F8))),(ISERROR(SEARCH("Closed",$F8)))),0,1)", work well too. Closing Li Meiying