@@ -134,18 +134,21 @@ private void setChildAdditionalData(IJsonBackedObject serializedObject, JsonObje
134134 // If the item is a valid Graph object, set its additional data
135135 if (child instanceof IJsonBackedObject ) {
136136 AdditionalDataManager childAdditionalDataManager = ((IJsonBackedObject ) child ).additionalDataManager ();
137- childAdditionalDataManager .setAdditionalData (rawJson .get (field .getName ()).getAsJsonObject ());
138- setChildAdditionalData ((IJsonBackedObject ) child ,rawJson .get (field .getName ()).getAsJsonObject ());
137+ if (rawJson != null && field != null && rawJson .get (field .getName ()) != null && rawJson .get (field .getName ()).isJsonObject ()) {
138+ childAdditionalDataManager .setAdditionalData (rawJson .get (field .getName ()).getAsJsonObject ());
139+ setChildAdditionalData ((IJsonBackedObject ) child ,rawJson .get (field .getName ()).getAsJsonObject ());
140+ }
139141 }
140142 }
141143 }
142144 // If the object is a valid Graph object, set its additional data
143145 else if (fieldObject != null && fieldObject instanceof IJsonBackedObject ) {
144146 IJsonBackedObject serializedChild = (IJsonBackedObject ) fieldObject ;
145147 AdditionalDataManager childAdditionalDataManager = serializedChild .additionalDataManager ();
146-
147- childAdditionalDataManager .setAdditionalData (rawJson .get (field .getName ()).getAsJsonObject ());
148- setChildAdditionalData ((IJsonBackedObject ) fieldObject ,rawJson .get (field .getName ()).getAsJsonObject ());
148+ if (rawJson != null && field != null && rawJson .get (field .getName ()) != null && rawJson .get (field .getName ()).isJsonObject ()) {
149+ childAdditionalDataManager .setAdditionalData (rawJson .get (field .getName ()).getAsJsonObject ());
150+ setChildAdditionalData ((IJsonBackedObject ) fieldObject ,rawJson .get (field .getName ()).getAsJsonObject ());
151+ }
149152 }
150153 } catch (IllegalArgumentException | IllegalAccessException e ) {
151154 logger .logError ("Unable to access child fields of " + serializedObject .getClass ().getSimpleName (), e );
@@ -229,8 +232,9 @@ private JsonObject getChildAdditionalData(IJsonBackedObject serializableObject,
229232 else if (fieldObject != null && fieldObject instanceof IJsonBackedObject ) {
230233 IJsonBackedObject serializableChild = (IJsonBackedObject ) fieldObject ;
231234 AdditionalDataManager childAdditionalData = serializableChild .additionalDataManager ();
232-
233- addAdditionalDataToJson (childAdditionalData , outJson .get (field .getName ()).getAsJsonObject ());
235+ if (outJson != null && field != null && outJson .get (field .getName ()) != null && outJson .get (field .getName ()).isJsonObject ()) {
236+ addAdditionalDataToJson (childAdditionalData , outJson .get (field .getName ()).getAsJsonObject ());
237+ }
234238
235239 // Serialize its children
236240 outJson = getChildAdditionalData (serializableChild , outJson );
0 commit comments