[ https://issues.apache.org/jira/browse/FLINK-7423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16124538#comment-16124538 ]
ASF GitHub Bot commented on FLINK-7423: --------------------------------------- Github user greghogan commented on the issue: https://github.com/apache/flink/pull/4525 As I understand Flink does not allow `null` records since what does it mean to partition or window a null record? `null` fields are sometimes allowed but `null` records are meaningless. The caller of `InputFormat#nextRecord` cannot reuse an object which has already been passed to `nextRecord` as a reusable object as this may result in an object being "used" twice. That's why object reuse always replaces the passed object with the returned object, which may be the same but could be different. @kl0u could you offer some insight into FLINK-4075 adding the null check with break to `InputFormatSourceFunction#run`? Thanks. > Always reuse an instance to get elements from the inputFormat > --------------------------------------------------------------- > > Key: FLINK-7423 > URL: https://issues.apache.org/jira/browse/FLINK-7423 > Project: Flink > Issue Type: Bug > Components: DataStream API > Reporter: Xu Pingyong > Assignee: Xu Pingyong > > In InputFormatSourceFunction.java: > {code:java} > OUT nextElement = serializer.createInstance(); > while (isRunning) { > format.open(splitIterator.next()); > // for each element we also check if cancel > // was called by checking the isRunning flag > while (isRunning && !format.reachedEnd()) { > nextElement = > format.nextRecord(nextElement); > if (nextElement != null) { > ctx.collect(nextElement); > } else { > break; > } > } > format.close(); > completedSplitsCounter.inc(); > if (isRunning) { > isRunning = splitIterator.hasNext(); > } > } > {code} > the format may return other element or null when nextRecord, that will may > cause exception. -- This message was sent by Atlassian JIRA (v6.4.14#64029)