Skip to content

Commit cd27f49

Browse files
committed
- adds logging for edge cases to help with potential troubleshooting
1 parent d41b575 commit cd27f49

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)