Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hi Everyone,

I have been doing some follow-up investigations that I thought you might like to be made aware.

First, why? Well after testing the file that I recreated by copying the text, formula and styles I could not cause the error to occur again. This is what I reported yesterday. I then proceeded with importing the few images and 'artwork' objects from the old file to the new. After several saves and sheet manipulations I noticed the file became unstable again.

The outcome of my investigation was that one of the image files used on one of the sheets had become corrupted* and adding this file in caused the file to become unstable - eventually exhibiting the problem I mentioned about not being able to save after a sheet was deleted. These 'corrupted' files are relatively benign with the error only becoming apparent *once* you attempt to delete the sheet. So somehow the error caused problems with the broader 'workbook' structure not the sheet structure. Although I compared files between different versions of the file the XML were too varied (usually style names and definitions; content was identical).

   * note I say corrupted but it rendered OK and only resulted
   in the observed behaviour one a sheet is deleted. I 'deem' it
   corrupted as once replaced with a clean version render and
   saved as a new file by GIMP, the problem disappeared.

The error was with the particular corrupt objects. On recreating new images and inserting them into a file I have not been able to trigger any problems. If I cut-and-paste from the original 'corrupt' file the file becomes unstable after a few saves and sheet manipulations.

So the steps for salvage is...
1. recreate a new file with the exact number of sheets as the original. Ensure each sheet names are the same. 2. Cut and Paste each sheet. Make sure you 'Paste special' limiting the content being placed in the new file to text, numbers, date & time, formulas and formats. 3. If you have images in the file. Recreate / Save using another package. As mentioned I used GIMP. 4. Insert new copies of the images into file. *Don't* cut-and-paste objects from the old file.
5. If you have any lines, text boxes and artwork; recreate them from new.

During this process...
- Save as a new version (+tabs, +data, +images, +other objects) following each step.
- Test each version thoroughly before proceeding.
- Only add one object at a time, so if something goes wrong you can isolate the problem component.
- To check it is not a bug try and recreate with a fresh file.

A couple of quick notes that may be valuable to others...
- ODS files are archives. Use an archive facility to extract the data inside. Inspect the contents in the folders to see what is different. - On every 'Save as' the file size changes. This is not due to changes in the file contents, but rather in changes in how the components of the file is compressed/archived. If you open a file, add objects then save, the file size with be so big. Open that file and "Save as" a new name and the file will be a different size. If you extract the files the contents of all the files and directories are identical. It is just the internal archive facility in LO will decide the best compaction routine based on what it encounters. - The content.xml file can be quite large and has no internal end-of-line characters. This make it difficult to open and be parse by various text editors, xml viewers and comparison facilities. To insert a EOL character after the end of each tag (i.e. >), I used the following command in the terminal (requires Linux).

   cat content.xml | sed -e 's/>/>\n/g' > content_with_linebreaks.xml

   cat just spews the content of the text file to the standard output.
   I then pipe it to sed, where I used regular expressions to find '>'
   and replace every instance of it with '>\n'. I then compared the
   contents with Diffuse.


On 11/08/11 14:44, jorge wrote:
Congratulations,... it was an interesting investigation.

Regards,

Jorge Rodríguez
______

El jue, 11-08-2011 a las 11:50 +1000, Simon Cropper escribió:
On 10/08/11 16:41, Simon Cropper wrote:
*The upshot*

Unless someone recognised these symptoms and can put forward some ideas,
I am treating this as a corrupt file. I have drawn this conclusion
because (a) I can only reproduce the error on the effected file, (b) the
comment insert/delete trick is suggestive but not consistent (or at
least from what I can tell) - random sheets cause the file save error if
comments are inserted; inserting comments into new sheets also trigger
the error.

I just hope that recreating this file does not corrupt the new file as I
will need to copy blocks of text, numbers and formulas.


              *My attempts at recreating a clean file*

ATTEMPT 1

Created a new file with one less tab. All tabs were named the same as
the original. I then cut-and-paste all the data from the original to
this newly created file. This took about 10 minutes.

The problem is that all tab / sheet references after the omitted sheet
moved across one. Despite the formula referencing the sheet name, the
name is actually just a human readable cue for the underlying sheet
number. So sheet Accounts (sheet #17 on the original file), which
pointed to 'accounts lookup list' now points to the Tax sheet, which was
#18 but is now #17 in the new file.

ATTEMPT 2

Created a new file with exactly the same number of tabs.  All tabs were
named the same as the original. I then cut-and-paste all the data from
the original to this newly created file. This took about 10 minutes.

Then with baited breath I deleted the unrequired sheet that triggered
this journey in the first place and clicked save. *It worked* - that is,
it saved without triggering a write error.

I have checked - (a) all data is intact, and (b) all the formulas are
working. :)

--
Cheers Simon

     Simon Cropper
     Principal Consultant
     Botanicus Australia Pty Ltd
     PO Box 160, Sunshine, VIC
     W: www.botanicusaustralia.com.au




--
Cheers Simon

   Simon Cropper
   Principal Consultant
   Botanicus Australia Pty Ltd
   PO Box 160, Sunshine, VIC
   W: www.botanicusaustralia.com.au

--
For unsubscribe instructions e-mail to: users+help@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.