Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-3394

Clear up the contract of MutableObjectIterator.next(reuse)

    XMLWordPrintableJSON

Details

    Description

      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. (The violating calls in the reduce drivers are being fixed by https://github.com/apache/flink/pull/1626 )

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

      Attachments

        Activity

          People

            Unassigned Unassigned
            ggevay Gábor Gévay
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: