Skip to content

Commit 3d4a4bb

Browse files
authored
Merge pull request #471 from microsoftgraph/bugfix/additional-properties-chidprop
- fixes a bug where additional properties would not be attached at the right level
2 parents bb418b8 + 77f240a commit 3d4a4bb

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,10 @@ public <T> String serializeObject(final T serializableObject) {
196196
if(outJson.has(field.getName())) {
197197
final Type[] interfaces = field.getType().getGenericInterfaces();
198198
for(Type interfaceType : interfaces) {
199-
if(interfaceType == IJsonBackedObject.class) {
199+
if(interfaceType == IJsonBackedObject.class && outJson.get(field.getName()).isJsonObject()) {
200200
try {
201-
outJsonTree = getDataFromAdditionalDataManager(outJsonTree, field.get(serializableObject));
201+
final JsonElement outdatedValue = outJson.remove(field.getName());
202+
outJson.add(field.getName(), getDataFromAdditionalDataManager(outdatedValue.getAsJsonObject(), field.get(serializableObject)));
202203
} catch (IllegalAccessException ex ) {
203204
logger.logDebug("Couldn't access prop" + field.getName());
204205
}

src/test/java/com/microsoft/graph/serializer/AdditionalDataTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertNotNull;
55
import static org.junit.Assert.assertNull;
6+
import static org.junit.Assert.assertTrue;
67

78
import org.junit.Before;
89
import org.junit.Test;
910

11+
import okhttp3.Request;
12+
1013
import com.google.gson.JsonElement;
1114
import com.google.gson.JsonObject;
1215
import com.google.gson.JsonParser;
1316
import com.google.gson.JsonPrimitive;
17+
import com.microsoft.graph.functional.TestBase;
18+
import com.microsoft.graph.http.HttpMethod;
1419
import com.microsoft.graph.logger.DefaultLogger;
1520
import com.microsoft.graph.models.extensions.Drive;
1621
import com.microsoft.graph.models.extensions.DriveItemCreateUploadSessionBody;
@@ -66,7 +71,7 @@ public void testPropsAdditionalDataOnNonIJSONObjects() {
6671
final DriveItemCreateUploadSessionBody body = new DriveItemCreateUploadSessionBody();
6772
body.item = upProps;
6873
String serializedObject = serializer.serializeObject(body);
69-
assertEquals("{\"item\":{\"name\":\"vacation.gif\"},\"@microsoft.graph.conflictBehavior\":\"rename\"}", serializedObject);
74+
assertEquals("{\"item\":{\"name\":\"vacation.gif\",\"@microsoft.graph.conflictBehavior\":\"rename\"}}", serializedObject);
7075
}
7176

7277
@Test

0 commit comments

Comments
 (0)