Bug 228459

Summary: Manipulation of entries in Lokalize glossary results in program crash and glossary corruption
Product: [Applications] lokalize Reporter: Donatas Glodenis <dg>
Component: generalAssignee: Nick Shaforostoff <shafff>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: The corrupted file
The file before corruption

Description Donatas Glodenis 2010-02-25 14:49:52 UTC
Version:           1.0 (using 4.4.00 (KDE 4.4.0), Kubuntu packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.31-19-generic

I deleted an entry in a 2000+ long glossary, when suddenly program crashed upon trying to exit glossary editor and choosing „save changes“ in a dialog.

The glossary was corrupted completely. The first entry in a corrupt glossary is the entry I added, while the next entry, that was copied and overwrote all other entries, was not being manipulated.
Comment 1 Donatas Glodenis 2010-02-25 15:05:48 UTC
Created attachment 41095 [details]
The corrupted file

This is the glossary file after it has been corrupted.
Comment 2 Donatas Glodenis 2010-02-25 17:48:24 UTC
Created attachment 41101 [details]
The file before corruption

This is not an exact version of the file that got corrupted – I had to recreate it by combining two other files, but I am pretty sure that structurally they are identical.
Comment 3 Nick Shaforostoff 2010-05-03 17:47:03 UTC
SVN commit 1122332 by shaforo:

rewrite glossary storage to use QDom classes
BUG: 228459


 M  +0 -1      CMakeLists.txt  
 M  +1 -0      cataloglistview/cataloglistview.cpp  
 M  +2 -2      common/flowlayout.cpp  
 M  +1 -1      common/flowlayout.h  
 M  +8 -8      common/termlabel.cpp  
 M  +3 -3      common/termlabel.h  
 M  +340 -406  glossary/glossary.cpp  
 M  +62 -18    glossary/glossary.h  
 M  +11 -15    glossary/glossaryview.cpp  
 M  +142 -74   glossary/glossarywindow.cpp  
 M  +48 -6     glossary/glossarywindow.h  
 M  +17 -18    glossary/termedit.ui  
 M  +4 -3      tm/jobs.cpp  
 M  +18 -3     xlifftextedit.cpp  
 M  +1 -0      xlifftextedit.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1122332