diff --git a/ChangeLog b/ChangeLog index 8cb8a09a0..c76e5bad2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-07-18 Wolfgang Sourdeau + + * OpenChange/MAPIStoreDBMessage.m (-objectVersion): shift the + version number by 16 bits, instead of doing it in -save. + (-save): don t swap the bytes of the version number as it would + return a wrong change number and a wrong change key for DB objects. + 2012-07-18 Ludovic Marcotte * SoObjects/Appointments/SOGoAppointmentObject.m diff --git a/OpenChange/MAPIStoreDBMessage.m b/OpenChange/MAPIStoreDBMessage.m index 945b41c8e..e8610de45 100644 --- a/OpenChange/MAPIStoreDBMessage.m +++ b/OpenChange/MAPIStoreDBMessage.m @@ -91,7 +91,7 @@ [(SOGoMAPIDBMessage *) sogoObject reloadIfNeeded]; versionNbr = [properties objectForKey: @"version"]; if (versionNbr) - objectVersion = [versionNbr unsignedLongLongValue]; + objectVersion = [versionNbr unsignedLongLongValue] >> 16; else objectVersion = ULLONG_MAX; @@ -158,7 +158,7 @@ if ([attachmentKeys count] > 0) [properties setObject: attachmentParts forKey: @"attachments"]; - newVersion = exchange_globcnt ([[self context] getNewChangeNumber] >> 16); + newVersion = [[self context] getNewChangeNumber]; [properties setObject: [NSNumber numberWithUnsignedLongLong: newVersion] forKey: @"version"];