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