bx123 created FLINK-24895: ----------------------------- Summary: SqlTimestampSerializer#deserialize forgets to fully read from source when the record is null. Key: FLINK-24895 URL: https://issues.apache.org/jira/browse/FLINK-24895 Project: Flink Issue Type: Bug Components: API / Type Serialization System Reporter: bx123
As we support null Timestamp in this Serializer. In the 2 deserialize() methods, when we read the first long and get Long.MIN_VALUE, we directly return null and forget to read the next int which responds to nanos. If there is really a null Timestamp that has been serialized before, we may get wrong value when we deserialize the Object after this timestamp. So before return null, source.skipBytesToRead(4) is needed to make the source in the right position. By the way, I find the copy(source, target) is implemented by deserialize the intermediate value, while its more efficient to just copy 12 bytes from source to target like target.write(source, 12). -- This message was sent by Atlassian Jira (v8.20.1#820001)