[ https://issues.apache.org/jira/browse/MAPREDUCE-6368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14547690#comment-14547690 ]
Akira AJISAKA commented on MAPREDUCE-6368: ------------------------------------------ Thanks [~dhirajnilange] for reporting this issue. I'm thinking the condition can be true. {code} float stepSize = samples.length / (float) numPartitions; int last = -1; for(int i = 1; i < numPartitions; ++i) { int k = Math.round(stepSize * i); while (last >= k && comparator.compare(samples[last], samples[k]) == 0) { ++k; } writer.append(samples[k], nullValue); last = k; } {code} {{k = Math.round(stepSize * i)}} can be equal to {{last = Math.round(stepSize * (i-1))}} if {{stepSize}} is less than 1. > Unreachable Java code > --------------------- > > Key: MAPREDUCE-6368 > URL: https://issues.apache.org/jira/browse/MAPREDUCE-6368 > Project: Hadoop Map/Reduce > Issue Type: Bug > Components: mrv2 > Affects Versions: 2.6.0 > Reporter: Dhiraj Nilange > Priority: Minor > > Reference > Class: org.apache.hadoop.mapreduce.lib.partition.InputSampler > Method: writePartitionFile > Line: 337 > The issue exists in the following code loop at line 337:- > while (last >= k && comparator.compare(samples[last], samples[k]) == 0) > { > ++k; > } > The problem is that the first condition in the while loop (last >= k) will > always be false. The value of 'last' will always be lesser than 'k' and hence > the first condition will never evaluate to true. There is second condition as > well but since it is appearing as AND condition, that will never be checked > since the first condition itself is false. Hence this loop is not > contributing towards the code output anyways. If this was intended to > execute, then I guess it will need investigation. But from what I have > noticed, it doesn't seem to harm the output of the method. In that case why > even keep it there. We could very well remove it from the code. And if this > was done with the some other intention, in that case this needs to be > corrected as currently it is unreachable code. This issue very much exists in > the release 2.6.0, I have not seen the release 2.7.0 source code, but it may > very well exist in that as well (it's worth checking). > Thanks & Regards, > Dhiraj -- This message was sent by Atlassian JIRA (v6.3.4#6332)