Ben Copsey

Stop using NSFileManager's defaultManager (closes gh-105)

@@ -135,8 +135,10 @@ @@ -135,8 +135,10 @@
135 135
136 + (BOOL)compressDataFromFile:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err 136 + (BOOL)compressDataFromFile:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err
137 { 137 {
  138 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  139 +
138 // Create an empty file at the destination path 140 // Create an empty file at the destination path
139 - if (![[NSFileManager defaultManager] createFileAtPath:destinationPath contents:[NSData data] attributes:nil]) { 141 + if (![fileManager createFileAtPath:destinationPath contents:[NSData data] attributes:nil]) {
140 if (err) { 142 if (err) {
141 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed because we were to create a file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,nil]]; 143 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed because we were to create a file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,nil]];
142 } 144 }
@@ -144,7 +146,7 @@ @@ -144,7 +146,7 @@
144 } 146 }
145 147
146 // Ensure the source file exists 148 // Ensure the source file exists
147 - if (![[NSFileManager defaultManager] fileExistsAtPath:sourcePath]) { 149 + if (![fileManager fileExistsAtPath:sourcePath]) {
148 if (err) { 150 if (err) {
149 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed the file does not exist",sourcePath],NSLocalizedDescriptionKey,nil]]; 151 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed the file does not exist",sourcePath],NSLocalizedDescriptionKey,nil]];
150 } 152 }
@@ -133,8 +133,10 @@ @@ -133,8 +133,10 @@
133 133
134 + (BOOL)uncompressDataFromFile:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err 134 + (BOOL)uncompressDataFromFile:(NSString *)sourcePath toFile:(NSString *)destinationPath error:(NSError **)err
135 { 135 {
  136 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  137 +
136 // Create an empty file at the destination path 138 // Create an empty file at the destination path
137 - if (![[NSFileManager defaultManager] createFileAtPath:destinationPath contents:[NSData data] attributes:nil]) { 139 + if (![fileManager createFileAtPath:destinationPath contents:[NSData data] attributes:nil]) {
138 if (err) { 140 if (err) {
139 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Decompression of %@ failed because we were to create a file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,nil]]; 141 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Decompression of %@ failed because we were to create a file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,nil]];
140 } 142 }
@@ -142,7 +144,7 @@ @@ -142,7 +144,7 @@
142 } 144 }
143 145
144 // Ensure the source file exists 146 // Ensure the source file exists
145 - if (![[NSFileManager defaultManager] fileExistsAtPath:sourcePath]) { 147 + if (![fileManager fileExistsAtPath:sourcePath]) {
146 if (err) { 148 if (err) {
147 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Decompression of %@ failed the file does not exist",sourcePath],NSLocalizedDescriptionKey,nil]]; 149 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Decompression of %@ failed the file does not exist",sourcePath],NSLocalizedDescriptionKey,nil]];
148 } 150 }
@@ -62,16 +62,19 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -62,16 +62,19 @@ static NSString *permanentCacheFolder = @"PermanentStore";
62 [self clearCachedResponsesForStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy]; 62 [self clearCachedResponsesForStoragePolicy:ASICacheForSessionDurationCacheStoragePolicy];
63 [storagePath release]; 63 [storagePath release];
64 storagePath = [path retain]; 64 storagePath = [path retain];
  65 +
  66 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  67 +
65 BOOL isDirectory = NO; 68 BOOL isDirectory = NO;
66 NSArray *directories = [NSArray arrayWithObjects:path,[path stringByAppendingPathComponent:sessionCacheFolder],[path stringByAppendingPathComponent:permanentCacheFolder],nil]; 69 NSArray *directories = [NSArray arrayWithObjects:path,[path stringByAppendingPathComponent:sessionCacheFolder],[path stringByAppendingPathComponent:permanentCacheFolder],nil];
67 for (NSString *directory in directories) { 70 for (NSString *directory in directories) {
68 - BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:directory isDirectory:&isDirectory]; 71 + BOOL exists = [fileManager fileExistsAtPath:directory isDirectory:&isDirectory];
69 if (exists && !isDirectory) { 72 if (exists && !isDirectory) {
70 [[self accessLock] unlock]; 73 [[self accessLock] unlock];
71 [NSException raise:@"FileExistsAtCachePath" format:@"Cannot create a directory for the cache at '%@', because a file already exists",directory]; 74 [NSException raise:@"FileExistsAtCachePath" format:@"Cannot create a directory for the cache at '%@', because a file already exists",directory];
72 } else if (!exists) { 75 } else if (!exists) {
73 - [[NSFileManager defaultManager] createDirectoryAtPath:directory withIntermediateDirectories:NO attributes:nil error:nil]; 76 + [fileManager createDirectoryAtPath:directory withIntermediateDirectories:NO attributes:nil error:nil];
74 - if (![[NSFileManager defaultManager] fileExistsAtPath:directory]) { 77 + if (![fileManager fileExistsAtPath:directory]) {
75 [[self accessLock] unlock]; 78 [[self accessLock] unlock];
76 [NSException raise:@"FailedToCreateCacheDirectory" format:@"Failed to create a directory for the cache at '%@'",directory]; 79 [NSException raise:@"FailedToCreateCacheDirectory" format:@"Failed to create a directory for the cache at '%@'",directory];
77 } 80 }
@@ -114,7 +117,7 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -114,7 +117,7 @@ static NSString *permanentCacheFolder = @"PermanentStore";
114 [[request responseData] writeToFile:dataPath atomically:NO]; 117 [[request responseData] writeToFile:dataPath atomically:NO];
115 } else if ([request downloadDestinationPath] && ![[request downloadDestinationPath] isEqualToString:dataPath]) { 118 } else if ([request downloadDestinationPath] && ![[request downloadDestinationPath] isEqualToString:dataPath]) {
116 NSError *error = nil; 119 NSError *error = nil;
117 - [[NSFileManager defaultManager] copyItemAtPath:[request downloadDestinationPath] toPath:dataPath error:&error]; 120 + [[[[NSFileManager alloc] init] autorelease] copyItemAtPath:[request downloadDestinationPath] toPath:dataPath error:&error];
118 } 121 }
119 [[self accessLock] unlock]; 122 [[self accessLock] unlock];
120 } 123 }
@@ -150,17 +153,19 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -150,17 +153,19 @@ static NSString *permanentCacheFolder = @"PermanentStore";
150 extension = @"html"; 153 extension = @"html";
151 } 154 }
152 155
  156 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  157 +
153 // Look in the session store 158 // Look in the session store
154 NSString *path = [[self storagePath] stringByAppendingPathComponent:sessionCacheFolder]; 159 NSString *path = [[self storagePath] stringByAppendingPathComponent:sessionCacheFolder];
155 NSString *dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:extension]]; 160 NSString *dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:extension]];
156 - if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { 161 + if ([fileManager fileExistsAtPath:dataPath]) {
157 [[self accessLock] unlock]; 162 [[self accessLock] unlock];
158 return dataPath; 163 return dataPath;
159 } 164 }
160 // Look in the permanent store 165 // Look in the permanent store
161 path = [[self storagePath] stringByAppendingPathComponent:permanentCacheFolder]; 166 path = [[self storagePath] stringByAppendingPathComponent:permanentCacheFolder];
162 dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:extension]]; 167 dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:extension]];
163 - if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { 168 + if ([fileManager fileExistsAtPath:dataPath]) {
164 [[self accessLock] unlock]; 169 [[self accessLock] unlock];
165 return dataPath; 170 return dataPath;
166 } 171 }
@@ -175,17 +180,20 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -175,17 +180,20 @@ static NSString *permanentCacheFolder = @"PermanentStore";
175 [[self accessLock] unlock]; 180 [[self accessLock] unlock];
176 return nil; 181 return nil;
177 } 182 }
  183 +
  184 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  185 +
178 // Look in the session store 186 // Look in the session store
179 NSString *path = [[self storagePath] stringByAppendingPathComponent:sessionCacheFolder]; 187 NSString *path = [[self storagePath] stringByAppendingPathComponent:sessionCacheFolder];
180 NSString *dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:@"cachedheaders"]]; 188 NSString *dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:@"cachedheaders"]];
181 - if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { 189 + if ([fileManager fileExistsAtPath:dataPath]) {
182 [[self accessLock] unlock]; 190 [[self accessLock] unlock];
183 return dataPath; 191 return dataPath;
184 } 192 }
185 // Look in the permanent store 193 // Look in the permanent store
186 path = [[self storagePath] stringByAppendingPathComponent:permanentCacheFolder]; 194 path = [[self storagePath] stringByAppendingPathComponent:permanentCacheFolder];
187 dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:@"cachedheaders"]]; 195 dataPath = [path stringByAppendingPathComponent:[[[self class] keyForURL:url] stringByAppendingPathExtension:@"cachedheaders"]];
188 - if ([[NSFileManager defaultManager] fileExistsAtPath:dataPath]) { 196 + if ([fileManager fileExistsAtPath:dataPath]) {
189 [[self accessLock] unlock]; 197 [[self accessLock] unlock];
190 return dataPath; 198 return dataPath;
191 } 199 }
@@ -245,8 +253,10 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -245,8 +253,10 @@ static NSString *permanentCacheFolder = @"PermanentStore";
245 [[self accessLock] unlock]; 253 [[self accessLock] unlock];
246 return; 254 return;
247 } 255 }
248 - [[NSFileManager defaultManager] removeItemAtPath:cachedHeadersPath error:NULL]; 256 +
249 - [[NSFileManager defaultManager] removeItemAtPath:dataPath error:NULL]; 257 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  258 + [fileManager removeItemAtPath:cachedHeadersPath error:NULL];
  259 + [fileManager removeItemAtPath:dataPath error:NULL];
250 [[self accessLock] unlock]; 260 [[self accessLock] unlock];
251 } 261 }
252 262
@@ -355,14 +365,16 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -355,14 +365,16 @@ static NSString *permanentCacheFolder = @"PermanentStore";
355 } 365 }
356 NSString *path = [[self storagePath] stringByAppendingPathComponent:(storagePolicy == ASICacheForSessionDurationCacheStoragePolicy ? sessionCacheFolder : permanentCacheFolder)]; 366 NSString *path = [[self storagePath] stringByAppendingPathComponent:(storagePolicy == ASICacheForSessionDurationCacheStoragePolicy ? sessionCacheFolder : permanentCacheFolder)];
357 367
  368 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  369 +
358 BOOL isDirectory = NO; 370 BOOL isDirectory = NO;
359 - BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDirectory]; 371 + BOOL exists = [fileManager fileExistsAtPath:path isDirectory:&isDirectory];
360 if (!exists || !isDirectory) { 372 if (!exists || !isDirectory) {
361 [[self accessLock] unlock]; 373 [[self accessLock] unlock];
362 return; 374 return;
363 } 375 }
364 NSError *error = nil; 376 NSError *error = nil;
365 - NSArray *cacheFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error]; 377 + NSArray *cacheFiles = [fileManager contentsOfDirectoryAtPath:path error:&error];
366 if (error) { 378 if (error) {
367 [[self accessLock] unlock]; 379 [[self accessLock] unlock];
368 [NSException raise:@"FailedToTraverseCacheDirectory" format:@"Listing cache directory failed at path '%@'",path]; 380 [NSException raise:@"FailedToTraverseCacheDirectory" format:@"Listing cache directory failed at path '%@'",path];
@@ -370,7 +382,7 @@ static NSString *permanentCacheFolder = @"PermanentStore"; @@ -370,7 +382,7 @@ static NSString *permanentCacheFolder = @"PermanentStore";
370 for (NSString *file in cacheFiles) { 382 for (NSString *file in cacheFiles) {
371 NSString *extension = [file pathExtension]; 383 NSString *extension = [file pathExtension];
372 if ([extension isEqualToString:@"cacheddata"] || [extension isEqualToString:@"cachedheaders"]) { 384 if ([extension isEqualToString:@"cacheddata"] || [extension isEqualToString:@"cachedheaders"]) {
373 - [[NSFileManager defaultManager] removeItemAtPath:[path stringByAppendingPathComponent:file] error:&error]; 385 + [fileManager removeItemAtPath:[path stringByAppendingPathComponent:file] error:&error];
374 if (error) { 386 if (error) {
375 [[self accessLock] unlock]; 387 [[self accessLock] unlock];
376 [NSException raise:@"FailedToRemoveCacheFile" format:@"Failed to remove cached data at path '%@'",path]; 388 [NSException raise:@"FailedToRemoveCacheFile" format:@"Failed to remove cached data at path '%@'",path];
@@ -102,7 +102,7 @@ @@ -102,7 +102,7 @@
102 // If data is a path to a local file 102 // If data is a path to a local file
103 if ([data isKindOfClass:[NSString class]]) { 103 if ([data isKindOfClass:[NSString class]]) {
104 BOOL isDirectory = NO; 104 BOOL isDirectory = NO;
105 - BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:(NSString *)data isDirectory:&isDirectory]; 105 + BOOL fileExists = [[[[NSFileManager alloc] init] autorelease] fileExistsAtPath:(NSString *)data isDirectory:&isDirectory];
106 if (!fileExists || isDirectory) { 106 if (!fileExists || isDirectory) {
107 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIInternalErrorWhileBuildingRequestType userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"No file exists at %@",data],NSLocalizedDescriptionKey,nil]]]; 107 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIInternalErrorWhileBuildingRequestType userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"No file exists at %@",data],NSLocalizedDescriptionKey,nil]]];
108 } 108 }
@@ -316,7 +316,7 @@ @@ -316,7 +316,7 @@
316 - (void)appendPostDataFromFile:(NSString *)file 316 - (void)appendPostDataFromFile:(NSString *)file
317 { 317 {
318 NSError *err = nil; 318 NSError *err = nil;
319 - unsigned long long fileSize = [[[[NSFileManager defaultManager] attributesOfItemAtPath:file error:&err] objectForKey:NSFileSize] unsignedLongLongValue]; 319 + unsigned long long fileSize = [[[[[[NSFileManager alloc] init] autorelease] attributesOfItemAtPath:file error:&err] objectForKey:NSFileSize] unsignedLongLongValue];
320 if (err) { 320 if (err) {
321 [self addToDebugBody:[NSString stringWithFormat:@"[Error: Failed to obtain the size of the file at '%@']",file]]; 321 [self addToDebugBody:[NSString stringWithFormat:@"[Error: Failed to obtain the size of the file at '%@']",file]];
322 } else { 322 } else {
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 #import "ASIDataCompressor.h" 24 #import "ASIDataCompressor.h"
25 25
26 // Automatically set on build 26 // Automatically set on build
27 -NSString *ASIHTTPRequestVersion = @"v1.8-10 2010-11-24"; 27 +NSString *ASIHTTPRequestVersion = @"v1.8-14 2010-12-02";
28 28
29 NSString* const NetworkRequestErrorDomain = @"ASIHTTPRequestErrorDomain"; 29 NSString* const NetworkRequestErrorDomain = @"ASIHTTPRequestErrorDomain";
30 30
@@ -497,7 +497,7 @@ static NSOperationQueue *sharedQueue = nil; @@ -497,7 +497,7 @@ static NSOperationQueue *sharedQueue = nil;
497 path = [self postBodyFilePath]; 497 path = [self postBodyFilePath];
498 } 498 }
499 NSError *err = nil; 499 NSError *err = nil;
500 - [self setPostLength:[[[NSFileManager defaultManager] attributesOfItemAtPath:path error:&err] fileSize]]; 500 + [self setPostLength:[[[[[NSFileManager alloc] init] autorelease] attributesOfItemAtPath:path error:&err] fileSize]];
501 if (err) { 501 if (err) {
502 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to get attributes for file at path '%@'",path],NSLocalizedDescriptionKey,error,NSUnderlyingErrorKey,nil]]]; 502 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to get attributes for file at path '%@'",path],NSLocalizedDescriptionKey,error,NSUnderlyingErrorKey,nil]]];
503 return; 503 return;
@@ -1041,9 +1041,11 @@ static NSOperationQueue *sharedQueue = nil; @@ -1041,9 +1041,11 @@ static NSOperationQueue *sharedQueue = nil;
1041 1041
1042 - (void)updatePartialDownloadSize 1042 - (void)updatePartialDownloadSize
1043 { 1043 {
1044 - if ([self allowResumeForFileDownloads] && [self downloadDestinationPath] && [self temporaryFileDownloadPath] && [[NSFileManager defaultManager] fileExistsAtPath:[self temporaryFileDownloadPath]]) { 1044 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  1045 +
  1046 + if ([self allowResumeForFileDownloads] && [self downloadDestinationPath] && [self temporaryFileDownloadPath] && [fileManager fileExistsAtPath:[self temporaryFileDownloadPath]]) {
1045 NSError *err = nil; 1047 NSError *err = nil;
1046 - [self setPartialDownloadSize:[[[NSFileManager defaultManager] attributesOfItemAtPath:[self temporaryFileDownloadPath] error:&err] fileSize]]; 1048 + [self setPartialDownloadSize:[[fileManager attributesOfItemAtPath:[self temporaryFileDownloadPath] error:&err] fileSize]];
1047 if (err) { 1049 if (err) {
1048 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to get attributes for file at path '%@'",[self temporaryFileDownloadPath]],NSLocalizedDescriptionKey,error,NSUnderlyingErrorKey,nil]]]; 1050 [self failWithError:[NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to get attributes for file at path '%@'",[self temporaryFileDownloadPath]],NSLocalizedDescriptionKey,error,NSUnderlyingErrorKey,nil]]];
1049 return; 1051 return;
@@ -1084,14 +1086,16 @@ static NSOperationQueue *sharedQueue = nil; @@ -1084,14 +1086,16 @@ static NSOperationQueue *sharedQueue = nil;
1084 // 1086 //
1085 // Create the stream for the request 1087 // Create the stream for the request
1086 // 1088 //
1087 - 1089 +
  1090 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  1091 +
1088 [self setReadStreamIsScheduled:NO]; 1092 [self setReadStreamIsScheduled:NO];
1089 1093
1090 // Do we need to stream the request body from disk 1094 // Do we need to stream the request body from disk
1091 - if ([self shouldStreamPostDataFromDisk] && [self postBodyFilePath] && [[NSFileManager defaultManager] fileExistsAtPath:[self postBodyFilePath]]) { 1095 + if ([self shouldStreamPostDataFromDisk] && [self postBodyFilePath] && [fileManager fileExistsAtPath:[self postBodyFilePath]]) {
1092 1096
1093 // Are we gzipping the request body? 1097 // Are we gzipping the request body?
1094 - if ([self compressedPostBodyFilePath] && [[NSFileManager defaultManager] fileExistsAtPath:[self compressedPostBodyFilePath]]) { 1098 + if ([self compressedPostBodyFilePath] && [fileManager fileExistsAtPath:[self compressedPostBodyFilePath]]) {
1095 [self setPostBodyReadStream:[ASIInputStream inputStreamWithFileAtPath:[self compressedPostBodyFilePath] request:self]]; 1099 [self setPostBodyReadStream:[ASIInputStream inputStreamWithFileAtPath:[self compressedPostBodyFilePath] request:self]];
1096 } else { 1100 } else {
1097 [self setPostBodyReadStream:[ASIInputStream inputStreamWithFileAtPath:[self postBodyFilePath] request:self]]; 1101 [self setPostBodyReadStream:[ASIInputStream inputStreamWithFileAtPath:[self postBodyFilePath] request:self]];
@@ -3178,7 +3182,7 @@ static NSOperationQueue *sharedQueue = nil; @@ -3178,7 +3182,7 @@ static NSOperationQueue *sharedQueue = nil;
3178 // Response should already have been inflated, move the temporary file to the destination path 3182 // Response should already have been inflated, move the temporary file to the destination path
3179 } else { 3183 } else {
3180 NSError *moveError = nil; 3184 NSError *moveError = nil;
3181 - [[NSFileManager defaultManager] moveItemAtPath:[self temporaryUncompressedDataDownloadPath] toPath:[self downloadDestinationPath] error:&moveError]; 3185 + [[[[NSFileManager alloc] init] autorelease] moveItemAtPath:[self temporaryUncompressedDataDownloadPath] toPath:[self downloadDestinationPath] error:&moveError];
3182 if (moveError) { 3186 if (moveError) {
3183 fileError = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to move file from '%@' to '%@'",[self temporaryFileDownloadPath],[self downloadDestinationPath]],NSLocalizedDescriptionKey,moveError,NSUnderlyingErrorKey,nil]]; 3187 fileError = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to move file from '%@' to '%@'",[self temporaryFileDownloadPath],[self downloadDestinationPath]],NSLocalizedDescriptionKey,moveError,NSUnderlyingErrorKey,nil]];
3184 } 3188 }
@@ -3198,7 +3202,7 @@ static NSOperationQueue *sharedQueue = nil; @@ -3198,7 +3202,7 @@ static NSOperationQueue *sharedQueue = nil;
3198 3202
3199 //Move the temporary file to the destination path 3203 //Move the temporary file to the destination path
3200 if (!fileError) { 3204 if (!fileError) {
3201 - [[NSFileManager defaultManager] moveItemAtPath:[self temporaryFileDownloadPath] toPath:[self downloadDestinationPath] error:&moveError]; 3205 + [[[[NSFileManager alloc] init] autorelease] moveItemAtPath:[self temporaryFileDownloadPath] toPath:[self downloadDestinationPath] error:&moveError];
3202 if (moveError) { 3206 if (moveError) {
3203 fileError = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to move file from '%@' to '%@'",[self temporaryFileDownloadPath],[self downloadDestinationPath]],NSLocalizedDescriptionKey,moveError,NSUnderlyingErrorKey,nil]]; 3207 fileError = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to move file from '%@' to '%@'",[self temporaryFileDownloadPath],[self downloadDestinationPath]],NSLocalizedDescriptionKey,moveError,NSUnderlyingErrorKey,nil]];
3204 } 3208 }
@@ -3509,9 +3513,11 @@ static NSOperationQueue *sharedQueue = nil; @@ -3509,9 +3513,11 @@ static NSOperationQueue *sharedQueue = nil;
3509 3513
3510 + (BOOL)removeFileAtPath:(NSString *)path error:(NSError **)err 3514 + (BOOL)removeFileAtPath:(NSString *)path error:(NSError **)err
3511 { 3515 {
3512 - if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 3516 + NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
  3517 +
  3518 + if ([fileManager fileExistsAtPath:path]) {
3513 NSError *removeError = nil; 3519 NSError *removeError = nil;
3514 - [[NSFileManager defaultManager] removeItemAtPath:path error:&removeError]; 3520 + [fileManager removeItemAtPath:path error:&removeError];
3515 if (removeError) { 3521 if (removeError) {
3516 if (err) { 3522 if (err) {
3517 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to delete file at path '%@'",path],NSLocalizedDescriptionKey,removeError,NSUnderlyingErrorKey,nil]]; 3523 *err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASIFileManagementError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Failed to delete file at path '%@'",path],NSLocalizedDescriptionKey,removeError,NSUnderlyingErrorKey,nil]];
@@ -3940,7 +3946,7 @@ static NSOperationQueue *sharedQueue = nil; @@ -3940,7 +3946,7 @@ static NSOperationQueue *sharedQueue = nil;
3940 3946
3941 + (NSString *)mimeTypeForFileAtPath:(NSString *)path 3947 + (NSString *)mimeTypeForFileAtPath:(NSString *)path
3942 { 3948 {
3943 - if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { 3949 + if (![[[[NSFileManager alloc] init] autorelease] fileExistsAtPath:path]) {
3944 return nil; 3950 return nil;
3945 } 3951 }
3946 // Borrowed from http://stackoverflow.com/questions/2439020/wheres-the-iphone-mime-type-database 3952 // Borrowed from http://stackoverflow.com/questions/2439020/wheres-the-iphone-mime-type-database
@@ -297,7 +297,7 @@ static NSMutableArray *requestsUsingXMLParser = nil; @@ -297,7 +297,7 @@ static NSMutableArray *requestsUsingXMLParser = nil;
297 #if TARGET_OS_MAC && MAC_OS_X_VERSION_MAX_ALLOWED <= __MAC_10_5 297 #if TARGET_OS_MAC && MAC_OS_X_VERSION_MAX_ALLOWED <= __MAC_10_5
298 // xmlSaveToBuffer() is not implemented in the 10.5 version of libxml 298 // xmlSaveToBuffer() is not implemented in the 10.5 version of libxml
299 NSString *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]]; 299 NSString *tempPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]];
300 - [[NSFileManager defaultManager] createFileAtPath:tempPath contents:nil attributes:nil]; 300 + [[[[NSFileManager alloc] init] autorelease] createFileAtPath:tempPath contents:nil attributes:nil];
301 saveContext = xmlSaveToFd([[NSFileHandle fileHandleForWritingAtPath:tempPath] fileDescriptor],NULL,2); // 2 == XML_SAVE_NO_DECL, this isn't declared on Mac OS 10.5 301 saveContext = xmlSaveToFd([[NSFileHandle fileHandleForWritingAtPath:tempPath] fileDescriptor],NULL,2); // 2 == XML_SAVE_NO_DECL, this isn't declared on Mac OS 10.5
302 xmlSaveDoc(saveContext, doc); 302 xmlSaveDoc(saveContext, doc);
303 xmlSaveClose(saveContext); 303 xmlSaveClose(saveContext);