Hi,
I have a groovy script in a page, that loads some data and create pages and
objects with it.
Basically for each input data 2 new documents are created, each with 2 new
objects inside (one a custom class, and one for tags "XWiki.TagClass").
For most documents there is no problem, while for some I get the following
kind of exceptions (always for one of the classes, never for the other) :
Error number 3201 in 3: Exception while saving document MailArchive.
MMKSonLinuxpatch22-01
Wrapped Exception: Row was updated or deleted by another transaction (or
unsaved-value mapping was incorrect):
[com.xpn.xwiki.objects.DateProperty#2009-09-14 15:57:26.0]
The exact same date string is used to save another document/object without
any problem (the Date fields have exactly same pattern format). I use the
same SimpleDateFormat for all, and the patterns in the class are copy-paste,
so why is it ok for one and failure for the other ?
It's not always a DateProperty that cause issues, it can also be Strings or
LargeStrings.
I tried to delete my custom class and recreate it, purge all created
documents (with doc.delete()), and also to purge all entries that were left
even after delete(), directly in database (in tables xwikidoc, xwikiobjects,
xwikistrings, xwikilargestrings, xwikidates and xwikirecyclebin), but it
seems the same input data will always have document.save() fail this way.
It seems it's always the second save() for an input data that can fail. This
second save() targets a different document, object and class, and it's not
the same groovy variables either. Could it happen that the first save() is
not completely finished and there is some problem with tables updates ?
Would I have something else to do to make sure previous transaction is
finished ?
I believe it must be something in the data, but it's only strings,
largestrings and a date, so I don't know how to investigate more...
Thanks for any help,
Jeremie
PS : I'm on XWiki 2.0.3, MySQL 5.1.38, Linux RH Rel 4