From f1d75451e3bd854146ab3504e54d59266642ab24 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 9 Sep 2020 10:53:29 -0400 Subject: [PATCH] - fixes a bug where uploading a profile photo would result in an invalid cast exception --- .../com/microsoft/graph/http/CoreHttpProvider.java | 9 +++++++-- .../java/com/microsoft/graph/functional/UserTests.java | 10 ++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/microsoft/graph/http/CoreHttpProvider.java b/src/main/java/com/microsoft/graph/http/CoreHttpProvider.java index 708294d4892..97b74e09b81 100644 --- a/src/main/java/com/microsoft/graph/http/CoreHttpProvider.java +++ b/src/main/java/com/microsoft/graph/http/CoreHttpProvider.java @@ -398,8 +398,13 @@ public MediaType contentType() { } else { logger.logDebug("Response binary"); isBinaryStreamInput = true; - //no inspection unchecked - return (Result) handleBinaryStream(in); + if (resultClass == InputStream.class) { + return (Result) handleBinaryStream(in); + } else if(response.body() != null && response.body().contentLength() > 0) { // some services reply in text/plain with a JSON representation... + return handleJsonResponse(in, CoreHttpProvider.getResponseHeadersAsMapOfStringList(response), resultClass); + } else { + return (Result) null; + } } } finally { if (!isBinaryStreamInput) { diff --git a/src/test/java/com/microsoft/graph/functional/UserTests.java b/src/test/java/com/microsoft/graph/functional/UserTests.java index fac30372808..2f0c9143fe9 100644 --- a/src/test/java/com/microsoft/graph/functional/UserTests.java +++ b/src/test/java/com/microsoft/graph/functional/UserTests.java @@ -2,6 +2,8 @@ import static org.junit.Assert.assertNotNull; +import java.io.File; +import java.io.FileInputStream; import java.io.InputStream; import java.util.List; @@ -12,6 +14,7 @@ import com.microsoft.graph.models.extensions.Drive; import com.microsoft.graph.models.extensions.DriveItem; import com.microsoft.graph.models.extensions.IGraphServiceClient; +import com.microsoft.graph.models.extensions.ProfilePhoto; import com.microsoft.graph.models.extensions.User; import com.microsoft.graph.requests.extensions.IContactCollectionPage; import com.microsoft.graph.requests.extensions.IDirectoryObjectCollectionWithReferencesPage; @@ -122,6 +125,13 @@ public void usersKeyPhotoValueTest() { } } + @Test + public void updateUserPhotoValueTest() throws Exception { + final File photo = new File("src/test/resources/hamilton.jpg"); + final InputStream fileStream = new FileInputStream(photo); + graphServiceClient.me().photo().content().buildRequest().put(OutlookTests.getByteArray(fileStream)); + } + @Test public void getOrganization() { //GET organization