Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | .doc save as, OOo freeze | ||||||
---|---|---|---|---|---|---|---|
Product: | Writer | Reporter: | didiera <didier.alain> | ||||
Component: | ui | Assignee: | michael.ruess | ||||
Status: | CLOSED FIXED | QA Contact: | issues@sw <issues> | ||||
Severity: | Trivial | ||||||
Priority: | P3 | CC: | issues, os_ooo | ||||
Version: | OOo 1.1.2 | ||||||
Target Milestone: | --- | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Issue Type: | DEFECT | Latest Confirmation in: | --- | ||||
Developer Difficulty: | --- | ||||||
Attachments: |
|
Description
didiera
2004-08-24 23:28:16 UTC
Created attachment 17332 [details]
Test MS word document
MRU->DVO: Saving this in sxw format end up in a loop with heavy memory consumption and Assertion "Ins 1" from memtools\svarray.cxx. Please have a look if the import is buggy or it is a Writer format problem. Thanks! The problem was caused by a bookmark which extends past the end of a paragraph. I.e., the bookmark position was (node 17, content 21), but the paragraph only has 14 characters of text. When this happens, SwXTextPortionEnumeration::CreatePortions() gets into a loop when it tries to advance to the next position. E.g., we are at position 12 and want to advance. The algorithm tries to move to the next position (21) which fails because the paragraph only has 14 characters. Hence, the current position doesn't change and we get into a loop. I fixed this by making sure that in such cases the algorithm advances to position 14 instead of staying at 12. This probably drops one half of the bookmark, though. Also, I'm not sure if we should allow such situations in the core at all, and if not, how to fix this. dvo->os: Oliver, please do: 1) review my fix at sw/source/core/unocore/unoportenum.cxx, v. 1.27.300.1 2) decide whether we want to allow this situation at all, and if not, should this be fixed: - in the WW8 import (where this 'illegal' bookmark is created; from what I remember CMC telling me, these things can happen in the WW8 format) - in SwDoc::MakeBookmark (which would prevent this irregardless of the source) - in unoportenum.cxx (don't touch the core, but treat an index > than string length the same as string length) Also, please reopen/forward the bug as appropriate. :-) ->dvo: Your fix doesn't hurt but such situations should not be allowed. Bookmarks should not point to positions that do not exist. This is not allowed inside of the core and the filters should not do this either. Please fix it in SwDoc::MakeBookmark() . reopen for QA dvo->mru: Please test. Shold have state "fixed". Verified fix in CWS swqbugfixes09. Checked integration with 680m67. |