Skip to content

Commit 8539166

Browse files
update: improve error handling by checking for null values in experiment key retrieval
1 parent 64f378f commit 8539166

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

core-api/src/main/java/com/optimizely/ab/Optimizely.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1451,7 +1451,10 @@ private Map<String, OptimizelyDecision> decideForKeys(@Nonnull OptimizelyUserCon
14511451
for (int i = 0; i < flagsWithoutForcedDecision.size(); i++) {
14521452
DecisionResponse<FeatureDecision> decision = decisionList.get(i);
14531453
boolean error = decision.isError();
1454-
String experimentKey = decision.getResult().experiment.getKey();
1454+
String experimentKey = null;
1455+
if (decision.getResult() != null && decision.getResult().experiment != null) {
1456+
experimentKey = decision.getResult().experiment.getKey();
1457+
}
14551458
String flagKey = flagsWithoutForcedDecision.get(i).getKey();
14561459

14571460
if (error) {

core-api/src/test/java/com/optimizely/ab/OptimizelyTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5044,7 +5044,7 @@ public void testDecideReturnsErrorDecisionWhenDecisionServiceFails() throws Exce
50445044
assertNull(decision.getVariationKey());
50455045
assertNull(decision.getRuleKey());
50465046
assertEquals("feature_1", decision.getFlagKey());
5047-
assertTrue(decision.getReasons().contains("Decision service error occured for key \"feature_1\"."));
5047+
assertTrue(decision.getReasons().contains("Failed to fetch CMAB data for experiment exp-cmab."));
50485048
}
50495049

50505050
}

0 commit comments

Comments
 (0)