@@ -154,17 +154,19 @@ else if (fieldObject instanceof List) {
154154 final List <?> fieldObjectList = (List <?>) fieldObject ;
155155 if (collectionJson != null && collectionJson .isJsonArray ()) {
156156 final JsonArray rawJsonArray = (JsonArray ) collectionJson ;
157- if ( rawJsonArray . size () == fieldObjectList .size ()) {
158- for ( int i = 0 ; i < fieldObjectList .size (); i ++) {
159- final Object element = fieldObjectList . get ( i );
160- if ( element instanceof IJsonBackedObject ) {
161- final JsonElement elementRawJson = rawJsonArray . get ( i );
162- if ( elementRawJson != null ) {
163- setChildAdditionalData (( IJsonBackedObject ) element , elementRawJson . getAsJsonObject ());
164- }
157+ final Integer fieldObjectListSize = fieldObjectList .size ();
158+ final Integer rawJsonArraySize = rawJsonArray .size ();
159+ for ( int i = 0 ; i < fieldObjectListSize && i < rawJsonArraySize ; i ++) {
160+ final Object element = fieldObjectList . get ( i );
161+ if ( element instanceof IJsonBackedObject ) {
162+ final JsonElement elementRawJson = rawJsonArray . get ( i );
163+ if ( elementRawJson != null ) {
164+ setChildAdditionalData (( IJsonBackedObject ) element , elementRawJson . getAsJsonObject ());
165165 }
166166 }
167167 }
168+ if (rawJsonArraySize != fieldObjectListSize )
169+ logger .logDebug ("rawJsonArray has a size of " + rawJsonArraySize + " and fieldObjectList of " + fieldObjectListSize );
168170 }
169171 }
170172 // If the object is a valid Graph object, set its additional data
@@ -181,6 +183,7 @@ else if (fieldObject instanceof IJsonBackedObject) {
181183 } catch (IllegalArgumentException | IllegalAccessException e ) {
182184 //Not throwing the IllegalArgumentException as the Serialized Object would still be usable even if the additional data is not set.
183185 logger .logError ("Unable to set child fields of " + serializedObject .getClass ().getSimpleName (), e );
186+ logger .logDebug (rawJson .getAsString ());
184187 }
185188 }
186189 }
0 commit comments