Skip to content

Commit 7fe83d7

Browse files
Adding error handling for file transformer in case the file transformer errors out.
1 parent a040c8c commit 7fe83d7

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

android/src/main/java/com/ReactNativeBlobUtil/ReactNativeBlobUtilReq.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,9 @@ private void done(Response resp) {
578578
}
579579
try (FileOutputStream fos = new FileOutputStream(file)) {
580580
fos.write(ReactNativeBlobUtilFileTransformer.sharedFileTransformer.onWriteFile(b));
581+
} catch(Exception e) {
582+
callback.invoke("Error from file transformer:" + e.getLocalizedMessage(), null);
583+
return;
581584
}
582585
callback.invoke(null, ReactNativeBlobUtilConst.RNFB_RESPONSE_PATH, this.destPath);
583586
return;

ios/ReactNativeBlobUtilFS.m

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,13 @@ + (void) readFile:(NSString *)path
538538
if (transformFile) {
539539
NSObject<FileTransformer>* fileTransformer = [ReactNativeBlobUtilFileTransformer getFileTransformer];
540540
if (fileTransformer) {
541-
fileContent = [fileTransformer onReadFile:fileContent];
541+
@try{
542+
fileContent = [fileTransformer onReadFile:fileContent];
543+
} @catch (NSException * ex)
544+
{
545+
onComplete(nil, @"EUNSPECIFIED", [NSString stringWithFormat:@"Exception on File Transformer: '%@' ", [ex description]]);
546+
return;
547+
}
542548
} else {
543549
onComplete(nil, @"EUNSPECIFIED", @"Transform specified but transformer not set");
544550
return;

ios/ReactNativeBlobUtilRequest.m

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,8 +406,13 @@ - (void) URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCom
406406
if (!fileTransformer) {
407407
errMsg = @"Transform file specified but file transfomer not set";
408408
} else {
409-
NSData* transformedData = [fileTransformer onWriteFile:respData];
410-
[writeStream write:[transformedData bytes] maxLength:[transformedData length]];
409+
@try{
410+
NSData* transformedData = [fileTransformer onWriteFile:respData];
411+
[writeStream write:[transformedData bytes] maxLength:[transformedData length]];
412+
} @catch(NSException * ex)
413+
{
414+
errMsg = [NSString stringWithFormat:@"Exception on File Transformer: '%@' ", [ex description]];
415+
}
411416
}
412417
}
413418
[writeStream close];

0 commit comments

Comments
 (0)