Skip to content

Commit 4f68767

Browse files
committed
fix(NPE): Adds null checkers at VarCache.safeDiff.
1 parent e58cb6f commit 4f68767

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

AndroidSDKCore/src/main/java/com/leanplum/internal/VarCache.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -405,17 +405,21 @@ public static void saveDiffs() {
405405
editor.putString(Constants.Defaults.MESSAGES_KEY, messagesCipher);
406406

407407
try {
408-
String updateRulesCipher = aesContext.encrypt(
409-
JsonConverter.listToJsonArray(updateRuleDiffs).toString());
410-
editor.putString(Constants.Defaults.UPDATE_RULES_KEY, updateRulesCipher);
408+
if (updateRuleDiffs != null && !updateRuleDiffs.isEmpty()) {
409+
String updateRulesCipher = aesContext.encrypt(
410+
JsonConverter.listToJsonArray(updateRuleDiffs).toString());
411+
editor.putString(Constants.Defaults.UPDATE_RULES_KEY, updateRulesCipher);
412+
}
411413
} catch (JSONException e) {
412414
Log.e("Error converting updateRuleDiffs to JSON", e);
413415
}
414416

415417
try {
416-
String eventRulesCipher = aesContext.encrypt(
417-
JsonConverter.listToJsonArray(eventRuleDiffs).toString());
418-
editor.putString(Constants.Defaults.EVENT_RULES_KEY, eventRulesCipher);
418+
if (eventRuleDiffs != null && !eventRuleDiffs.isEmpty()) {
419+
String eventRulesCipher = aesContext.encrypt(
420+
JsonConverter.listToJsonArray(eventRuleDiffs).toString());
421+
editor.putString(Constants.Defaults.EVENT_RULES_KEY, eventRulesCipher);
422+
}
419423
} catch (JSONException e) {
420424
Log.e("Error converting eventRuleDiffs to JSON", e);
421425
}
@@ -424,8 +428,10 @@ public static void saveDiffs() {
424428
editor.putString(Constants.Defaults.REGIONS_KEY, regionsCipher);
425429

426430
try {
427-
String variantsJson = JsonConverter.listToJsonArray(variants).toString();
428-
editor.putString(Constants.Keys.VARIANTS, aesContext.encrypt(variantsJson));
431+
if (variants != null && !variants.isEmpty()) {
432+
String variantsJson = JsonConverter.listToJsonArray(variants).toString();
433+
editor.putString(Constants.Keys.VARIANTS, aesContext.encrypt(variantsJson));
434+
}
429435
} catch (JSONException e1) {
430436
Log.e("Error converting " + variants + " to JSON.\n" + Log.getStackTraceString(e1));
431437
}
@@ -467,9 +473,9 @@ private static void fileVariableFinish() {
467473
}
468474
String overrideFile = var.stringValue;
469475
if (var.isResource && Constants.Kinds.FILE.equals(var.kind()) && overrideFile != null &&
470-
!overrideFile.equals(var.defaultValue())) {
476+
!overrideFile.equals(var.defaultValue())) {
471477
Map<String, Object> variationAttributes = CollectionUtil.uncheckedCast(fileAttributes.get
472-
(overrideFile));
478+
(overrideFile));
473479
InputStream stream = fileStreams.get(overrideFile);
474480
if (variationAttributes != null && stream != null) {
475481
var.setOverrideResId(getResIdFromPath(var.stringValue()));

0 commit comments

Comments
 (0)