diff --git a/ChangeLog b/ChangeLog index 1befe2dfd..97ed5d0e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-07-08 Wolfgang Sourdeau + * OpenChange/SOGoMAPIFSFolder.m (-initWithName:inContainer:): + added method to properly initialize the "directory" ivar when + initialized as a subfolder. + * OpenChange/MAPIStoreMailContext.m: MAPIStoreDeletedItemsContext is now temporarily a fs-based context. diff --git a/OpenChange/SOGoMAPIFSFolder.m b/OpenChange/SOGoMAPIFSFolder.m index 62f9e0ac6..61d21a684 100644 --- a/OpenChange/SOGoMAPIFSFolder.m +++ b/OpenChange/SOGoMAPIFSFolder.m @@ -120,6 +120,19 @@ static NSString *privateDir = nil; return self; } +- (id) initWithName: (NSString *) newName + inContainer: (id) newContainer +{ + if ((self = [super initWithName: newName inContainer: newContainer])) + { + directory = [[newContainer directory] + stringByAppendingPathComponent: newName]; + [directory retain]; + } + + return self; +} + - (NSString *) directory { return directory; @@ -141,6 +154,10 @@ static NSString *privateDir = nil; NSDictionary *attributes; BOOL isDir; + if (!directory) + [NSException raise: @"MAPIStoreIOException" + format: @"directory is nil"]; + fm = [NSFileManager defaultManager]; if ([fm fileExistsAtPath: directory isDirectory: &isDir]) { @@ -218,8 +235,8 @@ static NSString *privateDir = nil; isDirectory: &isDir]) { if (isDir) - object = [SOGoMAPIFSFolder objectWithName: fileName - inContainer: self]; + object = [isa objectWithName: fileName + inContainer: self]; else object = [SOGoMAPIFSMessage objectWithName: fileName inContainer: self];