Merge pull request #62 from Zentyal/ejhernandez/fix-space-temporal-crash-setChangeKey
Attempt to sync an UID in setChangeKey to avoid crashing
This commit is contained in:
commit
bdf12e5c01
|
@ -757,7 +757,6 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||||
messageEntry = [messages objectForKey: messageUID];
|
messageEntry = [messages objectForKey: messageUID];
|
||||||
if (!messageEntry)
|
if (!messageEntry)
|
||||||
{
|
{
|
||||||
[messages removeObjectForKey: messageUID];
|
|
||||||
changeNumber = [[self context] getNewChangeNumber];
|
changeNumber = [[self context] getNewChangeNumber];
|
||||||
fetchResults = [(NSDictionary *) [sogoObject fetchUIDs: [NSArray arrayWithObject: messageUID]
|
fetchResults = [(NSDictionary *) [sogoObject fetchUIDs: [NSArray arrayWithObject: messageUID]
|
||||||
parts: [NSArray arrayWithObject: @"modseq"]]
|
parts: [NSArray arrayWithObject: @"modseq"]]
|
||||||
|
@ -844,12 +843,24 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||||
{
|
{
|
||||||
NSMutableDictionary *messages, *messageEntry;
|
NSMutableDictionary *messages, *messageEntry;
|
||||||
NSString *messageUid;
|
NSString *messageUid;
|
||||||
|
BOOL synced;
|
||||||
|
|
||||||
messageUid = [self messageUIDFromMessageKey: messageKey];
|
messageUid = [self messageUIDFromMessageKey: messageKey];
|
||||||
messages = [[versionsMessage properties] objectForKey: @"Messages"];
|
messages = [[versionsMessage properties] objectForKey: @"Messages"];
|
||||||
messageEntry = [messages objectForKey: messageUid];
|
messageEntry = [messages objectForKey: messageUid];
|
||||||
if (!messageEntry)
|
if (!messageEntry)
|
||||||
abort ();
|
{
|
||||||
|
[self warnWithFormat: @"attempting to synchronise to set the change key for "
|
||||||
|
@"this message %@", messageKey];
|
||||||
|
synced = [self synchroniseCacheForUID: messageUid];
|
||||||
|
if (synced)
|
||||||
|
messageEntry = [[[versionsMessage properties] objectForKey: @"Messages"] objectForKey: messageUid];
|
||||||
|
if (!messageEntry)
|
||||||
|
{
|
||||||
|
[self errorWithFormat: @"still nothing. We crash!"];
|
||||||
|
abort ();
|
||||||
|
}
|
||||||
|
}
|
||||||
[self _setChangeKey: changeKey forMessageEntry: messageEntry];
|
[self _setChangeKey: changeKey forMessageEntry: messageEntry];
|
||||||
|
|
||||||
[versionsMessage save];
|
[versionsMessage save];
|
||||||
|
|
Loading…
Reference in a new issue