2222
2323package com .microsoft .graph .serializer ;
2424
25- import com .google .common .annotations .VisibleForTesting ;
2625import com .google .common .base .CaseFormat ;
2726import com .google .gson .Gson ;
2827import com .google .gson .JsonArray ;
3534import java .io .InputStream ;
3635import java .io .InputStreamReader ;
3736import java .lang .reflect .Field ;
38- import java .lang .reflect .Type ;
3937import java .util .HashMap ;
4038import java .util .Iterator ;
4139import 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