GNOME Bugzilla – Bug 685986
ESourceRegistry: Wait for signals after creating sources
Last modified: 2012-10-27 12:50:34 UTC
taken from : https://mail.gnome.org/archives/evolution-hackers/2012-October/msg00012.html The issue is on the client side in ESourceRegistry. I had some pretty nasty code at one time to deal with this but must have yanked it while reworking the APIs. Even after the remote method call completes, ESourceRegistry will still have to stop and wait for an "object-added" signal from its internal GDBusObjectManagerClient, which is running in its own isolated thread. The "object-added" signal has the new GDBusObject needed to build the new ESource instance. And it can't complete on just any "object-added" signal -- it has to be the "object-added" signal corresponding to the scratch ESource that was just submitted.
Think I managed to solve this, and even wrote a test case for it. But as it's rather delicate code I'm only committing the change for 3.7.x for now. If it fares well in 3.7.x then I'll consider backporting it for 3.6.x. Fixed for Evolution-Data-Server 3.7.2 in: http://git.gnome.org/browse/evolution-data-server/commit/?id=6f98b459bd9abd55dbdee995e4bdb15da3797023