Dhiraj Nilange created MAPREDUCE-6368:
-----------------------------------------
Summary: 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)