pohly <patrick.ohly(a)intel.com> changed:
What |Removed |Added
Target Milestone|--- |1.2
--- Comment #3 from pohly <patrick.ohly(a)intel.com> 2011-09-14 13:16:17 UTC ---
Fix in 1.2 release branch, together with commits which add tests:
Author: Patrick Ohly <patrick.ohly(a)intel.com>
Date: Mon Sep 12 13:59:14 2011 +0200
Evolution Calendar: fixed detached recurrence support (BMC #22940)
e_cal_create_object() of a detached recurrence fails with "UID already
exists" if there is any other event with that UID, regardless whether
it is the parent or another detached recurrence.
When adding new items, SyncEvolution did not handle the case were
another detached recurrence, but not the parent, already existed. The
check for "UID used" must check for any item with that UID, not just
When removing the parent, SyncEvolution temporarily removes detached
recurrences and recreates them later (can't be done differently with
older EDS). Recreating a second detached recurrence with
e_cal_create_object() then failed, must use e_cal_modify_object() for
it and all following recurrences.
Finally, EDS itself is confused when asked for a UID without
RECURRENCE-ID, as it happens during such a removal: instead of
returning the information that the parent doesn't exist (which
SyncEvolution handles), it returns the first child (which broke change
tracking by adding an entry for the non-existant parent). Worked
around by doing a sanity check on the returned data.
Because these additional changes would have been very slow with the
list of luid strings, m_allLUIDs is now a more complex map from UID to
set of RECURRENCE-IDs. This also makes some other code more
efficient (O(log n) instead of O(n), less parsing of luid strings).
MeeGo Release: unspecified
Assigned To: patrick.ohly(a)intel.com
Target Build: 1.2
Changed: Priority Status Resolution AssignedTo Target Milestone
Configure bugmail: https://bugs.meego.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.