You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Gabor Gevay (JIRA)" <ji...@apache.org> on 2016/02/12 17:30:18 UTC

[jira] [Created] (FLINK-3394) Clear up the contract of MutableObjectIterator.next(reuse)

Gabor Gevay created FLINK-3394:
----------------------------------

             Summary: Clear up the contract of MutableObjectIterator.next(reuse)
                 Key: FLINK-3394
                 URL: https://issues.apache.org/jira/browse/FLINK-3394
             Project: Flink
          Issue Type: Bug
          Components: Distributed Runtime
    Affects Versions: 1.0.0
            Reporter: Gabor Gevay
            Priority: Critical


{{MutableObjectIterator.next(reuse)}} has the following contract (according to [~StephanEwen]'s comment \[1\]):

1. The caller may not hold onto {{reuse}} any more
2. The iterator implementor may not hold onto the returned object any more.

This should be documented in its javadoc (with "WARNING" so that people don't overlook it).

Additionally, since this was a "secret contract" up to now, all the 270 usages of {{MutableObjectIterator.next(reuse)}} should be checked for violations. A few that are suspicious at first glance, are in {{CrossDriver}}, {{UnionWithTempOperator}}, {{MutableHashTable.ProbeIterator.next}}, {{ReusingBuildFirstHashJoinIterator.callWithNextKey}}.

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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)