From 8e7f6d1aec1ebf05afe3330447cea4cf6797d3a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Garc=C3=ADa=20S=C3=A1ez?= Date: Fri, 23 Jan 2015 18:15:44 +0100 Subject: [PATCH] oc: avoid change number leaking when refreshing folder. Everytime a folder where its last operation was delete some email was requesting change numbers that were not used. --- OpenChange/MAPIStoreMailFolder.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index 57679c1f1..3d85f3e62 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -637,16 +637,18 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data) fetchResults = [(SOGoMailFolder *) sogoObject fetchUIDsOfVanishedItems: lastModseqNbr]; max = [fetchResults count]; - changeNumbers = [[self context] getNewChangeNumbers: max]; + changeNumber = nil; for (count = 0; count < max; count++) { uid = [[fetchResults objectAtIndex: count] stringValue]; if ([messages objectForKey: uid]) { - newChangeNum = [[changeNumbers objectAtIndex: count] - unsignedLongLongValue]; - changeNumber = [NSString stringWithUnsignedLongLong: newChangeNum]; + if (!changeNumber) + { + newChangeNum = [[self context] getNewChangeNumber]; + changeNumber = [NSString stringWithUnsignedLongLong: newChangeNum]; + } [messages removeObjectForKey: uid]; [self logWithFormat: @"Removed message entry for UID %@", uid]; }