Skip to content

Commit 13b4569

Browse files
committed
- fixes #232 a bug where additional data serialization would fail in some cases
1 parent 51aa1d1 commit 13b4569

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/main/java/com/microsoft/graph/serializer/DefaultSerializer.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
package com.microsoft.graph.serializer;
2424

25-
import com.google.common.annotations.VisibleForTesting;
2625
import com.google.common.base.CaseFormat;
2726
import com.google.gson.Gson;
2827
import com.google.gson.JsonArray;
@@ -35,7 +34,6 @@
3534
import java.io.InputStream;
3635
import java.io.InputStreamReader;
3736
import java.lang.reflect.Field;
38-
import java.lang.reflect.Type;
3937
import java.util.HashMap;
4038
import java.util.Iterator;
4139
import java.util.List;
@@ -241,8 +239,9 @@ private void getChildAdditionalData(final Object serializableObject, final JsonE
241239
if(outJson == null || serializableObject == null || !outJson.isJsonObject())
242240
return;
243241
final JsonObject outJsonObject = outJson.getAsJsonObject();
242+
addAdditionalDataFromJsonObjectToJson(serializableObject, outJsonObject);
244243
// Use reflection to iterate through fields for eligible Graph children
245-
for (java.lang.reflect.Field field : serializableObject.getClass().getFields()) {
244+
for (Field field : serializableObject.getClass().getFields()) {
246245
try {
247246
final Object fieldObject = field.get(serializableObject);
248247
final JsonElement fieldJsonElement = outJsonObject.get(field.getName());
@@ -275,7 +274,7 @@ else if (fieldObject instanceof List && fieldJsonElement.isJsonArray()) {
275274
} else if(fieldJsonElement.isJsonObject()) {
276275
// If the object is a valid Graph object, add its additional data
277276
final JsonObject fieldJsonObject = fieldJsonElement.getAsJsonObject();
278-
addAdditionalDataFromJsonObjectToJson(fieldObject, fieldJsonObject);
277+
getChildAdditionalData(fieldObject, fieldJsonObject);
279278
}
280279
} catch (IllegalArgumentException | IllegalAccessException e) {
281280
logger.logError("Unable to access child fields of " + serializableObject.getClass().getSimpleName(), e);
@@ -294,7 +293,6 @@ private void addAdditionalDataFromJsonObjectToJson (final Object item, final Jso
294293
final IJsonBackedObject serializableItem = (IJsonBackedObject) item;
295294
final AdditionalDataManager itemAdditionalData = serializableItem.additionalDataManager();
296295
addAdditionalDataFromManagerToJson(itemAdditionalData, itemJsonObject);
297-
getChildAdditionalData(serializableItem, itemJsonObject);
298296
}
299297
}
300298

0 commit comments

Comments
 (0)