[ 
https://issues.apache.org/jira/browse/FLINK-3685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16814396#comment-16814396
 ] 

Liya Fan commented on FLINK-3685:
---------------------------------

Hi [~bowen.zheng], thank you for opening this issue. The NPE indicates bugs in 
the system. However, I do not think it is DateSerializer's responsibility, 
because it is the caller's responsibility to create a reuse object, and make 
sure it is not null. The bug should be elsewhere.

Can you please provide the whole source code to reproduce the problem?

BTW, the latest code no longer uses -1 as an indicator for null. The latest 
code looks like this:

@Override
 public Date deserialize(Date reuse, DataInputView source) throws IOException {
 final long v = source.readLong();
 if (v == Long.MIN_VALUE) {
 return null;
 }
 reuse.setTime(v);
 return reuse;
 }

> Logical error in code for DateSerializer deserialize with reuse
> ---------------------------------------------------------------
>
>                 Key: FLINK-3685
>                 URL: https://issues.apache.org/jira/browse/FLINK-3685
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System
>    Affects Versions: 1.0.0
>            Reporter: ZhengBowen
>            Priority: Major
>
> There is a logical error in the following function in DateSerializer.java 
> when source read '-1'
> function is:
> {code}
> public Date deserialize(Date reuse, DataInputView source) throws IOException {
>       long v = source.readLong();
>       if(v == -1L) {
>               return null;
>       }
>       reuse.setTime(v);
>       return reuse;
> }
> {code}
> when call this function for first time, if return null, then 'reuse' will be 
> set null by caller;
> when call this function for second time,if 'v!=-1' ,reuse.setTime(v) will 
> throw NPE.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to