Skip to content

Fails to parse mailboxSettings #168

@kitherill

Description

@kitherill

Prerequisites

I'm trying to fetch mailboxSettings property for 'sandbox' user 48d31887-5fad-4d73-a9f5-3c356e68a038 via msgraph java SDK. For MS Graph API explorer it would be following URL: 'https://graph.microsoft.com/v1.0/users/48d31887-5fad-4d73-a9f5-3c356e68a038?$select=mailboxSettings'.

Expected behavior

User is read successfully

Actual behavior

Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 866 path $.mailboxSettings.workingHours.startTime

Steps to reproduce the behavior

Try to deserialise a response of https://graph.microsoft.com/v1.0/me/?$select=mailboxSettings

DefaultSerializer defaultSerializer = new DefaultSerializer(new ILogger() {
            @Override
            public void setLoggingLevel(LoggerLevel loggerLevel) {
            }

            @Override
            public LoggerLevel getLoggingLevel() {
                return LoggerLevel.DEBUG;
            }

            @Override
            public void logDebug(String s) {

            }

            @Override
            public void logError(String s, Throwable throwable) {

            }
        });
        User user = defaultSerializer.deserializeObject("\n"
                + "{\n"
                + "    \"@odata.context\": \"https://graph.microsoft.com/v1.0/$metadata#users(mailboxSettings)/$entity\",\n"
                + "    \"id\": \"48d31887-5fad-4d73-a9f5-3c356e68a038@dcd219dd-bc68-4b9b-bf0b-4a33a796be35\",\n"
                + "    \"mailboxSettings\": {\n"
                + "        \"archiveFolder\": \"AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAAAAAAiQ8W967B7TKBjgx9rVEURAQAiIsqMbYjsT5e-T7KzowPTAAAAAAFNAAA=\",\n"
                + "        \"timeZone\": \"Pacific Standard Time\",\n"
                + "        \"automaticRepliesSetting\": {\n"
                + "            \"status\": \"disabled\",\n"
                + "            \"externalAudience\": \"all\",\n"
                + "            \"internalReplyMessage\": \"\",\n"
                + "            \"externalReplyMessage\": \"\",\n"
                + "            \"scheduledStartDateTime\": {\n"
                + "                \"dateTime\": \"2018-11-27T00:00:00.0000000\",\n"
                + "                \"timeZone\": \"UTC\"\n"
                + "            },\n"
                + "            \"scheduledEndDateTime\": {\n"
                + "                \"dateTime\": \"2018-11-28T00:00:00.0000000\",\n"
                + "                \"timeZone\": \"UTC\"\n"
                + "            }\n"
                + "        },\n"
                + "        \"language\": {\n"
                + "            \"locale\": \"en-US\",\n"
                + "            \"displayName\": \"English (United States)\"\n"
                + "        },\n"
                + "        \"workingHours\": {\n"
                + "            \"daysOfWeek\": [\n"
                + "                \"monday\",\n"
                + "                \"tuesday\",\n"
                + "                \"wednesday\",\n"
                + "                \"thursday\",\n"
                + "                \"friday\"\n"
                + "            ],\n"
                + "            \"startTime\": \"08:00:00.0000000\",\n"
                + "            \"endTime\": \"17:00:00.0000000\",\n"
                + "            \"timeZone\": {\n"
                + "                \"name\": \"Pacific Standard Time\"\n"
                + "            }\n"
                + "        }\n"
                + "    }\n"
                + "}", User.class);

PS

There probably should be type adapter registered for TimeOfDay.class in com.microsoft.graph.serializer.GsonFactory#getGsonInstance

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions