diff --git a/common/src/main/java/com/microsoft/identity/common/adal/internal/tokensharing/TokenCacheItemSerializationAdapater.java b/common/src/main/java/com/microsoft/identity/common/adal/internal/tokensharing/TokenCacheItemSerializationAdapater.java index 9ae5edd3f3..2dc50088ea 100644 --- a/common/src/main/java/com/microsoft/identity/common/adal/internal/tokensharing/TokenCacheItemSerializationAdapater.java +++ b/common/src/main/java/com/microsoft/identity/common/adal/internal/tokensharing/TokenCacheItemSerializationAdapater.java @@ -45,11 +45,16 @@ public final class TokenCacheItemSerializationAdapater implements JsonDeserializer, JsonSerializer { private static final String TAG = TokenCacheItemSerializationAdapater.class.getSimpleName(); - + @Override public JsonElement serialize(final ADALTokenCacheItem tokenCacheItem, final Type type, - final JsonSerializationContext context) { + final JsonSerializationContext context) + throws JsonParseException { + throwIfParameterNull(tokenCacheItem.getAuthority(), OAuth2.AUTHORITY); + throwIfParameterNull(tokenCacheItem.getRefreshToken(), OAuth2.REFRESH_TOKEN); + throwIfParameterNull(tokenCacheItem.getRawIdToken(), OAuth2.ID_TOKEN); + throwIfParameterNull(tokenCacheItem.getFamilyClientId(), OAuth2.ADAL_CLIENT_FAMILY_ID); JsonObject jsonObj = new JsonObject(); jsonObj.add(OAuth2.AUTHORITY, new JsonPrimitive(tokenCacheItem.getAuthority())); jsonObj.add(OAuth2.REFRESH_TOKEN, new JsonPrimitive(tokenCacheItem.getRefreshToken())); @@ -84,4 +89,10 @@ private void throwIfParameterMissing(JsonObject json, String name) { throw new JsonParseException(TAG + "Attribute " + name + " is missing for deserialization."); } } -} \ No newline at end of file + + private void throwIfParameterNull(String parameter, String name) { + if (null == parameter) { + throw new JsonParseException(TAG + "Attribute " + name + " is null for serialization."); + } + } +}