-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Labels
bugSomething isn't working rightSomething isn't working right
Description
Describe the bug
Serializing a java.sql.Timestamp using a Jsonb instance created for example with
JsonbBuilder.create(new JsonbConfig().withDateFormat(
"yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSSXXX", null))
fails with an Exception:
jakarta.json.bind.JsonbException: Internal error: class java.sql.Timestamp cannot be cast to class java.time.temporal.TemporalAccessor (java.sql.Timestamp is in module java.sql of loader 'platform'; java.time.temporal.TemporalAccessor is in module java.base of loader 'bootstrap')
at [email protected]/org.eclipse.yasson.internal.SerializationContextImpl.marshall(SerializationContextImpl.java:137)
at [email protected]/org.eclipse.yasson.internal.SerializationContextImpl.marshall(SerializationContextImpl.java:159)
at [email protected]/org.eclipse.yasson.internal.JsonBinding.toJson(JsonBinding.java:132)
at [email protected]/org.eclipse.yasson.serializers.TimeSerializersTest.serializeSqlTimestampCustom(TimeSerializersTest.java:57)
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)
Suppressed: jakarta.json.stream.JsonGenerationException: Generating incomplete JSON
at [email protected]/org.eclipse.parsson.JsonGeneratorImpl.close(JsonGeneratorImpl.java:521)
at [email protected]/org.eclipse.yasson.internal.JsonBinding.toJson(JsonBinding.java:131)
... 4 more
Caused by: java.lang.ClassCastException: class java.sql.Timestamp cannot be cast to class java.time.temporal.TemporalAccessor (java.sql.Timestamp is in module java.sql of loader 'platform'; java.time.temporal.TemporalAccessor is in module java.base of loader 'bootstrap')
at [email protected]/org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer.toTemporalAccessor(AbstractDateSerializer.java:91)
at [email protected]/org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer.formatWithFormatter(AbstractDateSerializer.java:120)
at [email protected]/org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer.lambda$valueSerializer$3(AbstractDateSerializer.java :63)
at [email protected]/org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer.lambda$new$1(AbstractDateSerializer.java:51)
at [email protected]/org.eclipse.yasson.internal.serializer.types.AbstractDateSerializer.serializeValue(AbstractDateSerializer.java:147)
at [email protected]/org.eclipse.yasson.internal.serializer.types.TypeSerializer$ValueSerializer.serialize(TypeSerializer.java:51)
at [email protected]/org.eclipse.yasson.internal.serializer.types.TypeSerializer.serialize(TypeSerializer.java:37)
at [email protected]/org.eclipse.yasson.internal.serializer.KeyWriter.serialize(KeyWriter.java:41)
at [email protected]/org.eclipse.yasson.internal.serializer.NullSerializer.serialize(NullSerializer.java:67)
at [email protected]/org.eclipse.yasson.internal.SerializationContextImpl.serializeObject(SerializationContextImpl.java:197)
at [email protected]/org.eclipse.yasson.internal.SerializationContextImpl.marshall(SerializationContextImpl.java:133)
... 6 more
To Reproduce
Run tests added here: Intevation@93eefea
Expected behavior
The value of a java.sql.Timestamp is serialized analogously to java.util.Date.
System information:
- OS: Linux
- Java Version: 21
- Yasson Version: 3.0.4
Additional context
Seems to have been fixed with #577, though the titel reports a different exception.
Metadata
Metadata
Assignees
Labels
bugSomething isn't working rightSomething isn't working right