Handle codepush.json parsing exception (#1540)

This commit is contained in:
Yuri Kulikov
2019-03-15 21:57:14 +03:00
committed by Alexander Goncharov
parent 137067c45a
commit 964530c7c2
2 changed files with 14 additions and 1 deletions

View File

@@ -213,7 +213,15 @@ public class CodePush implements ReactPackage {
this.mAssetsBundleFileName = assetsBundleFileName;
String binaryJsBundleUrl = CodePushConstants.ASSETS_BUNDLE_PREFIX + assetsBundleFileName;
String packageFilePath = mUpdateManager.getCurrentPackageBundlePath(this.mAssetsBundleFileName);
String packageFilePath = null;
try {
packageFilePath = mUpdateManager.getCurrentPackageBundlePath(this.mAssetsBundleFileName);
} catch (CodePushMalformedDataException e) {
// We need to recover the app in case 'codepush.json' is corrupted
CodePushUtils.log(e.getMessage());
clearUpdates();
}
if (packageFilePath == null) {
// There has not been any downloaded updates.
CodePushUtils.logBundleUrl(binaryJsBundleUrl);

View File

@@ -349,6 +349,11 @@ public class CodePushNativeModule extends ReactContextBaseJavaModule {
CodePushUtils.setJSONValueForKey(currentPackage, "isPending", currentUpdateIsPending);
promise.resolve(CodePushUtils.convertJsonObjectToWritable(currentPackage));
}
} catch (CodePushMalformedDataException e) {
// We need to recover the app in case 'codepush.json' is corrupted
CodePushUtils.log(e.getMessage());
clearUpdates();
promise.resolve(null);
} catch(CodePushUnknownException e) {
CodePushUtils.log(e);
promise.reject(e);