After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 546934 - contact change tracking is broken (required by SyncEvolution)
contact change tracking is broken (required by SyncEvolution)
Status: RESOLVED FIXED
Product: Evolution Exchange
Classification: Deprecated
Component: Connector
2.22.x
Other All
: Normal normal
: ---
Assigned To: Patrick Ohly
Ximian Connector QA
Depends on:
Blocks:
 
 
Reported: 2008-08-08 13:31 UTC by Patrick Ohly
Modified: 2008-08-16 07:54 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
fixes for Exchange contact change tracking (1.60 KB, patch)
2008-08-08 13:34 UTC, Patrick Ohly
committed Details | Review

Description Patrick Ohly 2008-08-08 13:31:50 UTC
Please describe the problem:
e_book_backend_exchange_get_changes() (and therefore e_book_get_changes() with an Exchange address book) has three different problems:

* The list of collected changes in ctx->changes is never returned to the caller.
  Instead the list is leaked when freeing the context.
* For deleted items, an empty vcard with the UID set should be returned.
  Instead find_deleted_ids() stores the UID directly.
* find_deleted_ids() is a callback for g_hash_table_foreach() and modifies
  the hash that is iterated over. That's a big no-no! The effect is that the
  iteration is stopped prematurely, leading to incorrect change tracking.
  g_hash_table_foreach_remove() and its XML wrapper function have to be used
  instead.


Steps to reproduce:
Run the SyncEvolution test suite against Exchange address books.


Actual results:
No resp. (after fixing the initial problem) incorrect changes are returned.

Expected results:


Does this happen every time?
Yes.

Other information:
I'll append a patch against 2.22.3. The code in question hasn't changed for quite a while, so the patch should apply cleanly to a variety of Evolution releases.
Comment 1 Patrick Ohly 2008-08-08 13:34:16 UTC
Created attachment 116141 [details] [review]
fixes for Exchange contact change tracking

This is the patch against 2.22.3. Please review and let me know where I should apply it.
Comment 2 Srinivasa Ragavan 2008-08-11 04:54:41 UTC
Patrick, seems fine to me. Commit to trunk.