Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 68 additions & 2 deletions patches/react-native-zip-archive+7.1.0.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,57 @@
diff --git a/node_modules/react-native-zip-archive/android/src/main/java/com/rnziparchive/RNZipArchiveModule.java b/node_modules/react-native-zip-archive/android/src/main/java/com/rnziparchive/RNZipArchiveModule.java
index 14bd68f..cccbd99 100644
index 14bd68f..bfae10e 100644
--- a/node_modules/react-native-zip-archive/android/src/main/java/com/rnziparchive/RNZipArchiveModule.java
+++ b/node_modules/react-native-zip-archive/android/src/main/java/com/rnziparchive/RNZipArchiveModule.java
@@ -470,7 +470,7 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
@@ -44,6 +44,7 @@ import java.nio.charset.Charset;

public class RNZipArchiveModule extends ReactContextBaseJavaModule {
private static final String TAG = RNZipArchiveModule.class.getSimpleName();
+ private static final String ERROR_CODE = "RNZipArchiveError";

private static final String PROGRESS_EVENT_NAME = "zipArchiveProgressEvent";
private static final String EVENT_KEY_FILENAME = "filePath";
@@ -174,7 +175,12 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
}
} catch (Exception ex) {
updateProgress(0, 1, zipFilePath); // force 0%
- promise.reject("RNZipArchiveError", "Failed to extract file " + ex.getLocalizedMessage());
+ safeReject(
+ promise,
+ "RNZipArchiveError",
+ "Failed to extract file " + (ex.getLocalizedMessage() != null ? ex.getLocalizedMessage() : "unknown error"),
+ ex
+ );
}
}
}).start();
@@ -342,7 +348,7 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
processZip(filesOrDirectory, destFile, parameters, promise, password.toCharArray());

} catch (Exception ex) {
- promise.reject("RNZipArchiveError", ex.getMessage());
+ safeReject(promise, ERROR_CODE, ex.getMessage() != null ? ex.getMessage() : "unknown error", ex);
return;
}
}
@@ -356,7 +362,7 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
processZip(filesOrDirectory, destFile, parameters, promise, null);

} catch (Exception ex) {
- promise.reject("RNZipArchiveError", ex.getMessage());
+ safeReject(promise, ERROR_CODE, ex.getMessage() != null ? ex.getMessage() : "unknown error", ex);
return;
}
}
@@ -413,7 +419,7 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
}
promise.resolve(destFile);
} catch (Exception ex) {
- promise.reject("RNZipArchiveError", ex.getMessage());
+ safeReject(promise, ERROR_CODE, ex.getMessage() != null ? ex.getMessage() : "unknown error", ex);
return;
}
}
@@ -470,7 +476,7 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
}

private static CompressionLevel getCompressionLevel(double compressionLevel) {
Expand All @@ -11,3 +60,20 @@ index 14bd68f..cccbd99 100644
case -1:
return CompressionLevel.NORMAL;
case 0:
@@ -499,6 +505,16 @@ public class RNZipArchiveModule extends ReactContextBaseJavaModule {
}
}

+ private void safeReject(Promise promise, String code, String message, Throwable throwable) {
+ String safeCode = code != null ? code : "RNZipArchiveError";
+ String safeMessage = message != null ? message : "Zip operation failed";
+ try {
+ promise.reject(safeCode, safeMessage, throwable);
+ } catch (NullPointerException npe) {
+ Log.w(TAG, "Failed to reject promise", npe);
+ }
+ }
+
/**
* Returns the exception stack trace as a string
*/
Loading