diff --git a/ChangeLog b/ChangeLog index 109ef9736..e411c5152 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2011-11-20 Wolfgang Sourdeau + * OpenChange/MAPIStoreFolder.m (-lookupFolder:): explicitly set + the MAPIStoreContext's woContext as context to the looked up + folder, although one could expect it to have been set during the + lookup at the SOGo level... + + * OpenChange/MAPIStoreFSFolder.m (-lookupFolder:): removed useless + overriding of method. + + * OpenChange/MAPIStoreMailFolder.m (-[MAPIStoreMailFolder + lookupFolder:]): removed useless overriding of method. + (-[MAPIStoreInboxFolder lookupFolder:]): in altnamespace mode, + perform the same association of the woContext to the looked up + folder as in MAPIStoreFolder. + * OpenChange/MAPIStoreContext.m (-initFromURL:withConnectionInfo:andTDBIndexing:): instantiate a SOGoUser corresponding to the username of the new context and diff --git a/OpenChange/MAPIStoreFSFolder.m b/OpenChange/MAPIStoreFSFolder.m index d2ec82d86..acacc7b49 100644 --- a/OpenChange/MAPIStoreFSFolder.m +++ b/OpenChange/MAPIStoreFSFolder.m @@ -149,23 +149,6 @@ static Class EOKeyValueQualifierK; return entries; } -- (id) lookupFolder: (NSString *) childKey -{ - id childObject = nil; - SOGoMAPIFSFolder *childFolder; - - [self folderKeys]; - if ([folderKeys containsObject: childKey]) - { - childFolder = [sogoObject lookupName: childKey inContext: nil - acquire: NO]; - childObject = [MAPIStoreFSFolder mapiStoreObjectWithSOGoObject: childFolder - inContainer: self]; - } - - return childObject; -} - - (NSDate *) lastMessageModificationTime { NSUInteger count, max; diff --git a/OpenChange/MAPIStoreFolder.m b/OpenChange/MAPIStoreFolder.m index 2e81d9a82..5fa9dacdf 100644 --- a/OpenChange/MAPIStoreFolder.m +++ b/OpenChange/MAPIStoreFolder.m @@ -189,6 +189,7 @@ Class NSExceptionK, MAPIStoreFAIMessageK, MAPIStoreMessageTableK, MAPIStoreFAIMe sogoFolder = [sogoObject lookupName: folderKey inContext: woContext acquire: NO]; + [sogoFolder setContext: woContext]; if (sogoFolder && ![sogoFolder isKindOfClass: NSExceptionK]) childFolder = [isa mapiStoreObjectWithSOGoObject: sogoFolder inContainer: self]; diff --git a/OpenChange/MAPIStoreMailFolder.m b/OpenChange/MAPIStoreMailFolder.m index f15142d1f..3647b0766 100644 --- a/OpenChange/MAPIStoreMailFolder.m +++ b/OpenChange/MAPIStoreMailFolder.m @@ -351,23 +351,6 @@ static Class SOGoMailFolderK; return subfolderKeys; } -- (id) lookupFolder: (NSString *) childKey -{ - id childObject = nil; - SOGoMailFolder *childFolder; - - [self folderKeys]; - if ([folderKeys containsObject: childKey]) - { - childFolder = [sogoObject lookupName: childKey inContext: nil - acquire: NO]; - childObject = [MAPIStoreMailFolder mapiStoreObjectWithSOGoObject: childFolder - inContainer: self]; - } - - return childObject; -} - - (NSDate *) creationTime { return [NSCalendarDate dateWithTimeIntervalSince1970: 0x4dbb2dbe]; /* oc_version_time */ @@ -1168,26 +1151,28 @@ _parseCOPYUID (NSString *line, NSArray **destUIDsP) - (id) lookupFolder: (NSString *) childKey { - id childObject = nil; + MAPIStoreMailFolder *childFolder = nil; SOGoMailAccount *account; - SOGoMailFolder *childFolder; + SOGoMailFolder *sogoFolder; + WOContext *woContext; if (usesAltNameSpace) { - [self folderKeys]; - if ([folderKeys containsObject: childKey]) + if ([[self folderKeys] containsObject: childKey]) { + woContext = [[self context] woContext]; account = [(SOGoMailFolder *) sogoObject mailAccountFolder]; - childFolder = [account lookupName: childKey inContext: nil - acquire: NO]; - childObject = [MAPIStoreMailFolder mapiStoreObjectWithSOGoObject: childFolder - inContainer: self]; + sogoFolder = [account lookupName: childKey inContext: woContext + acquire: NO]; + [sogoFolder setContext: woContext]; + childFolder = [MAPIStoreMailFolder mapiStoreObjectWithSOGoObject: sogoFolder + inContainer: self]; } } else - childObject = [super lookupFolder: childKey]; + childFolder = [super lookupFolder: childKey]; - return childObject; + return childFolder; } @end