-
Notifications
You must be signed in to change notification settings - Fork 105
Open
Labels
bugSomething isn't working rightSomething isn't working right
Description
Describe the bug
It throws exceptions when deserialize a record type from a json.
Result:
public record Result<T>(Integer code, String message, T data) {}
To Reproduce
Result:
public record Result<T>(Integer code, String message, T data) {}
deserialize demo:
Result<User> result = jsonb.fromJson("""
{
"code": 200,
"message": "no",
"data": null
}
""", new GenericType<Result<User>>() {
});
exception:
jakarta.json.bind.JsonbException: Error resolving runtime type for type: T
at org.eclipse.yasson.internal.ReflectionUtils.lambda$getRawType$0(ReflectionUtils.java:92)
at java.base/java.util.Optional.orElseThrow(Optional.java:403)
at org.eclipse.yasson.internal.ReflectionUtils.getRawType(ReflectionUtils.java:92)
at org.eclipse.yasson.internal.deserializer.DeserializationModelCreator.createObjectDeserializer(DeserializationModelCreator.java:236)
at org.eclipse.yasson.internal.deserializer.DeserializationModelCreator.deserializerChainInternal(DeserializationModelCreator.java:193)
at org.eclipse.yasson.internal.deserializer.DeserializationModelCreator.deserializerChain(DeserializationModelCreator.java:135)
at org.eclipse.yasson.internal.deserializer.DeserializationModelCreator.deserializerChain(DeserializationModelCreator.java:123)
at org.eclipse.yasson.internal.DeserializationContextImpl.deserializeItem(DeserializationContextImpl.java:137)
at org.eclipse.yasson.internal.DeserializationContextImpl.deserialize(DeserializationContextImpl.java:127)
at org.eclipse.yasson.internal.JsonBinding.deserialize(JsonBinding.java:55)
at org.eclipse.yasson.internal.JsonBinding.fromJson(JsonBinding.java:70)
at test.dever.doc/test.cn.org.dever.doc.DataObjectCreatorTest.createInstance3(DataObjectCreatorTest.java:39)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
If I change Result from record to plain class.
public class Result<T> {
private Integer code;
private String message;
private T data;
// getter/ setter
}
it works, there is no exception in console.
Expected behavior
System information:
- OS: Windows
- Java Version: 21
- Yasson Version: 3.0.4
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't working rightSomething isn't working right