You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mahout.apache.org by "Shashanka Balakuntala Srinivasa (Jira)" <ji...@apache.org> on 2020/07/13 05:23:00 UTC

[jira] [Commented] (MAHOUT-2096) next() Called On Possible Empty iterator()

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

Shashanka Balakuntala Srinivasa commented on MAHOUT-2096:
---------------------------------------------------------

Hi [~MaxsLi], I want to work on the fix for this. I had one quick question, what should we do when iterator.next return null... Should we log something or just check if next exists then only we should write and skip else part?

> next() Called On Possible Empty iterator()
> ------------------------------------------
>
>                 Key: MAHOUT-2096
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-2096
>             Project: Mahout
>          Issue Type: Bug
>          Components: Algorithms
>            Reporter: Shangru Li
>            Priority: Minor
>              Labels: easyfix, newbie
>
> Consider this function:
> {code}
>  protected void reduce ( VarIntWritable index, Iterable<VarLongWritable> ids, Context
>    ctx) throws IOException, InterruptedException {
>      ctx.write(index, ids.iterator().next());
>  }
> {code}
> The line `_ctx.write(index, ids.iterator().next());_` does not check for empty iterator when calling the next() function, which could result in an exception.
> Function can be found on the GitHub repository [here|https://github.com/apache/mahout/blob/754068bc3ac62bcf4b9b656cd4a6f413b29b18df/community/mahout-mr/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java#L395].
> Line 395, in file _/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java_



--
This message was sent by Atlassian Jira
(v8.3.4#803005)