diff --git a/ChangeLog b/ChangeLog index af6fafd57..486a42fe5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-10-03 Wolfgang Sourdeau + + * OpenChange/MAPIStoreFolder.m (-deleteMessageWithMID:andFlags:): + invoke "prepareDelete" on the message object when available. + 2011-10-03 Francis Lachapelle * UI/WebServerResources/generic.js (snoozeAlarm): new function to diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index 34c57ae30..3bb494509 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -28,6 +28,7 @@ #import #import #import +#import #import #import "MAPIStoreActiveTables.h" @@ -466,6 +467,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe MAPIStoreMessage *message; NSArray *activeTables; NSUInteger count, max; + id msgObject; struct mapistore_connection_info *connInfo; struct mapistore_object_notification_parameters *notif_parameters; int rc; @@ -488,7 +490,10 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe for (count = 0; count < max; count++) [[activeTables objectAtIndex: count] restrictedChildKeys]; - if ([[message sogoObject] delete]) + msgObject = [message sogoObject]; + if (([msgObject respondsToSelector: @selector (prepareDelete)] + && [msgObject prepareDelete]) + || [msgObject delete]) { rc = MAPISTORE_ERROR; [self logWithFormat: @"ERROR deleting object at URL: %@", childURL];