Apache OpenOffice (AOO) Bugzilla – Issue 17046
Writer freezes when loading a word document that loads in 1.02
Last modified: 2013-08-07 14:43:45 UTC
See attached word document The writer freezes when loading this document and must be killed from the Close Program dialogue, losing any unsaved information in other writer windows. The progress bar goes to 100% and disapears before the freeze occurs. btw this is under win98se. The file loads OK in 1.02 for win32 (with some table formatting/position glitches). This _might_ be related to bug 15771, but not to bug 16629 (which is confirmed linux only). PS: Sorry if this is got submitted twice, the first submit didn't seem to work...
Created attachment 7820 [details] ms-word document that causes freeze (gzipped)
Confirmed on Linux with OOo1.1rc. Here's a stack dump created by running the program under gdb and hitting ^C. http://kegel.com/openoffice/hang-17046.txt Different runs get same stack dump differing only slightly at top.
HI->OD: In discuss with AMA yours.
Created attachment 8064 [details] simple document: table with wrapping and inner table
OD->CMC (28.07.2003): AMA and I figured out that we have a basic problem with importing a table with wrapping and another table inside this table - see attached document 'TableWithWrapArroundAndInnerTable.doc'. We thought that this defect is the bug cause of the freeze in the writer layout. In the original bugdoc you will find two such tables. After loading the original bugdoc, we got the assertion 'Table in table: Not implemented." On investigation of the bugdoc we detected the basic problem: If we have a table, which has wrapping arround and has another inner table, the text, which have to be outside the outer table is placed inside the table during the import. This seems to be happen in the original bugdoc with the first table in the document. Thus, the second table in the bugdoc is also placed inside the first table.
Tables in tables are very hard to handle in the winword filter, we turn them into tables inside frames inside tables, which is pretty good. But what adds to the complexity is that word reuses its paragraph absolute positioning for tables, so we must close such "APOs" at the same level (or lower) as which they were opened, and only open them if one was not opened before, the current code would open one if it was not at the same level, which is not correct, it should only open such an apo is none is already open, and leave the case of one opening and another closing at the same level to the different test for seperate byt adjoining apos.
note: wrap around for a table implies that such "APO" properties exist for that table. So the outer table is wrap around therefore it has APO properties and so gets a frame around it on import. The inner table is not "wrap around" but will always get a frame because its an inner table and that's the only way to get a table in a table. The apo properties on an table already inside an apo, (or their lack) should neither a) trigger the insertion of a frame because it is already inside a frame due to APO props, or b) trigger the closing of the frame because that can only be closed at the same (or lower) level at which it was opened. cmc: A bit complex, but the short of it is that it works for both smal land original document and even looks right. But will require a good bit of testing for 1.1.1
reopen to reassign
cmc->mru: Tables from hell working in corkfilterteam10
Fix verified in CWS corfilterteam10.
Fix will be included in OO 1.1.1.
> Fix verified in CWS corfilterteam10. > Fix will be included in OO 1.1.1. Woohoo!! Thanks guys/gals! :-) (I love open source!)
No löoop anymore in soon upcoming OO 1.1.1. Checked with srx645m27.