Description
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)