Skip to content

Gson Serialization Error: Duplicate JSON field 'state' in org.gitlab4j.api.models.User and AbstractUser #1255

@walnut-tom

Description

@walnut-tom

Attempt to serialize/deserialize org.gitlab4j.api.models.User objects using Gson
Observe conflict between User.state and inherited AbstractUser.state fields

        Gson gson = new Gson();
        User user = new User();
        System.out.println(gson.toJson(user));

java.lang.IllegalArgumentException: Class org.gitlab4j.api.models.User declares multiple JSON fields named 'state'; conflict is caused by fields org.gitlab4j.api.models.User#state and org.gitlab4j.api.models.AbstractUser#state
See https://github.com/google/gson/blob/main/Troubleshooting.md#duplicate-fields
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createDuplicateFieldException(ReflectiveTypeAdapterFactory.java:313)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:409)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:161)
at com.google.gson.Gson.getAdapter(Gson.java:628)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:201)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:395)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:161)
at com.google.gson.Gson.getAdapter(Gson.java:628)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:201)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:395)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:161)
at com.google.gson.Gson.getAdapter(Gson.java:628)
at com.google.gson.Gson.toJson(Gson.java:928)
at com.google.gson.Gson.toJson(Gson.java:899)
at com.google.gson.Gson.toJson(Gson.java:848)
at com.google.gson.Gson.toJson(Gson.java:825)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions