Skip to content

Commit 3c4c6bf

Browse files
committed
Catch any exception occured during parsing project config
Test Plan: unit tests Reviewers: elliot, vignesh, mike.ng JIRA Issues: OASIS-1008 Differential Revision: https://phabricator.optimizely.com/D14972
1 parent c313636 commit 3c4c6bf

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,13 @@ private void track(@Nonnull String eventName,
498498
* @return a {@link ProjectConfig} instance given a json string
499499
*/
500500
private static ProjectConfig getProjectConfig(String datafile) throws ConfigParseException {
501-
return DefaultConfigParser.getInstance().parseProjectConfig(datafile);
501+
ProjectConfig projectConfig;
502+
try {
503+
projectConfig = DefaultConfigParser.getInstance().parseProjectConfig(datafile);
504+
} catch (Exception e) {
505+
throw new ConfigParseException(e.getMessage(), e);
506+
}
507+
return projectConfig;
502508
}
503509

504510
//======== Notification listeners ========//

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,21 @@ public class OptimizelyBuilderTest {
6262

6363
@Mock private ErrorHandler mockErrorHandler;
6464

65+
@Test(expected = ConfigParseException.class)
66+
public void withNullConfig() throws Exception {
67+
Optimizely optimizelyClient = Optimizely.builder(null, mockEventHandler).build();
68+
}
69+
70+
@Test(expected = ConfigParseException.class)
71+
public void withEmptyConfig() throws Exception {
72+
Optimizely optimizelyClient = Optimizely.builder("", mockEventHandler).build();
73+
}
74+
75+
@Test(expected = ConfigParseException.class)
76+
public void withInvalidConfig() throws Exception {
77+
Optimizely optimizelyClient = Optimizely.builder("malformed json", mockEventHandler).build();
78+
}
79+
6580
@Test
6681
public void withEventHandler() throws Exception {
6782
Optimizely optimizelyClient = Optimizely.builder(validConfigJsonV2(), mockEventHandler)

0 commit comments

Comments
 (0)