diff --git a/ChangeLog b/ChangeLog index 3daeb5160..adc55a73b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2012-03-12 Wolfgang Sourdeau + * OpenChange/MAPIStoreGCSMessage.m + (-getPidTagPredecessorChangeList:inMemCtx:): when the list is + missing, request a synchronisation from the container as the + message might now have been synchronised yet... + * OpenChange/MAPIStoreTypes.m (MAPICNCompare): new function that returns an NSComparisonResult for two change numbers (reverse format). diff --git a/OpenChange/MAPIStoreGCSMessage.m b/OpenChange/MAPIStoreGCSMessage.m index 78fe155f5..4d7ea0c07 100644 --- a/OpenChange/MAPIStoreGCSMessage.m +++ b/OpenChange/MAPIStoreGCSMessage.m @@ -150,13 +150,21 @@ { int rc = MAPISTORE_SUCCESS; NSData *changeList; + MAPIStoreGCSFolder *parentFolder; if (isNew) rc = MAPISTORE_ERR_NOT_FOUND; else { - changeList = [(MAPIStoreGCSFolder *)[self container] - predecessorChangeListForMessageWithKey: [self nameInContainer]]; + parentFolder = (MAPIStoreGCSFolder *)[self container]; + changeList = [parentFolder + predecessorChangeListForMessageWithKey: [self nameInContainer]]; + if (!changeList) + { + [parentFolder synchroniseCache]; + changeList = [parentFolder + predecessorChangeListForMessageWithKey: [self nameInContainer]]; + } if (!changeList) abort (); *data = [changeList asBinaryInMemCtx: memCtx];