Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Entity.createFromDiscriminatorValue incorrectly deserializes #microsoft.graph.user as com.microsoft.graph.beta.models.security.User #1264

Copy link
Copy link
@clementdenis

Description

@clementdenis
Issue body actions

Describe the bug

In current beta version, when trying to deserialize a #microsoft.graph.user from JSON using KiotaJsonSerialization.deserialize(json, Entity::createFromDiscriminatorValue), it's returned as a com.microsoft.graph.beta.models.security.User instance.

This is because only one of com.microsoft.graph.beta.models.User and com.microsoft.graph.beta.models.security.User is imported the latter), and classes are referenced without fully qualified name.

See

case "#microsoft.graph.security.user": return new User();
and
case "#microsoft.graph.user": return new User();

There are probably other cases like this one.

Expected behavior

KiotaJsonSerialization.deserialize(json, Entity::createFromDiscriminatorValue) should return a com.microsoft.graph.beta.models.User instance for #microsoft.graph.user objects.

How to reproduce

This test

//passes
assertEquals(com.microsoft.graph.beta.models.User.class, KiotaJsonSerialization.deserialize("""
        {
            "@odata.type": "#microsoft.graph.user"
        }
        """, DirectoryObject::createFromDiscriminatorValue).getClass());
//KO
assertEquals(com.microsoft.graph.beta.models.User.class, KiotaJsonSerialization.deserialize("""
        {
            "@odata.type": "#microsoft.graph.user"
        }
        """, Entity::createFromDiscriminatorValue).getClass());

will fail with

org.opentest4j.AssertionFailedError: 
Expected :class com.microsoft.graph.beta.models.User
Actual   :class com.microsoft.graph.beta.models.security.User

SDK Version

6.51.0

Latest version known to work for scenario above?

No response

Known Workarounds

Pass a more precise ParsableFactory, like DirectoryObject::createFromDiscriminatorValue, like in the reproduction test.

Debug output

Configuration

No response

Other information

I found an old bug in Kiota that might be related (it was marked as fixed though): microsoft/kiota#1801

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugA broken experienceA broken experience

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.