diff --git a/src/main/java/com/google/firebase/remoteconfig/ServerTemplateImpl.java b/src/main/java/com/google/firebase/remoteconfig/ServerTemplateImpl.java index 742c19803..633730bf3 100644 --- a/src/main/java/com/google/firebase/remoteconfig/ServerTemplateImpl.java +++ b/src/main/java/com/google/firebase/remoteconfig/ServerTemplateImpl.java @@ -75,7 +75,7 @@ private ServerTemplateImpl(Builder builder) { try { this.cache.set(ServerTemplateData.fromJSON(initialTemplate)); } catch (FirebaseRemoteConfigException e) { - e.printStackTrace(); + throw new IllegalArgumentException("Unable to parse JSON string.", e); } } diff --git a/src/test/java/com/google/firebase/remoteconfig/ServerTemplateImplTest.java b/src/test/java/com/google/firebase/remoteconfig/ServerTemplateImplTest.java index bafe84331..d7b761141 100644 --- a/src/test/java/com/google/firebase/remoteconfig/ServerTemplateImplTest.java +++ b/src/test/java/com/google/firebase/remoteconfig/ServerTemplateImplTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; import com.google.api.core.ApiFuture; import com.google.firebase.FirebaseApp; @@ -188,20 +189,17 @@ public void testEvaluateWithoutDefaultValueReturnsEmptyString() public void testEvaluateWithInvalidCacheValueThrowsException() throws FirebaseRemoteConfigException { KeysAndValues defaultConfig = new KeysAndValues.Builder().build(); - KeysAndValues context = new KeysAndValues.Builder().build(); String invalidJsonString = "abc"; - ServerTemplate template = - new ServerTemplateImpl.Builder(null) - .defaultConfig(defaultConfig) - .cachedTemplate(invalidJsonString) - .build(); - - FirebaseRemoteConfigException error = - assertThrows(FirebaseRemoteConfigException.class, () -> template.evaluate(context)); - - assertEquals( - "No Remote Config Server template in cache. Call load() before " + "calling evaluate().", - error.getMessage()); + IllegalArgumentException error = assertThrows( + IllegalArgumentException.class, + () -> new ServerTemplateImpl.Builder(null) + .defaultConfig(defaultConfig) + .cachedTemplate(invalidJsonString) + .build()); + + assertEquals("Unable to parse JSON string.", error.getMessage()); + // Verify the cause is the original FirebaseRemoteConfigException + assertTrue(error.getCause() instanceof FirebaseRemoteConfigException); } @Test