[
https://issues.apache.org/jira/browse/HDFS-3837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eli Collins updated HDFS-3837:
------------------------------
Attachment: hdfs-3837.txt
The findbugs warning seems bogus - "This method calls equals(Object) on two
references of different class types with no common subclasses. Therefore, the
objects being compared are unlikely to be members of the same class at
runtime". Both DatanodeInfo and DatanodeRegistration extend DatanodeID so they
both share the equals implementation.
Anyway, I'll put the relevant code back (cast the array) since this fixes the
findbugs warning is is fine (just more verbose).
{code}
- DatanodeID[] datanodeids = rBlock.getLocations();
+ DatanodeInfo[] targets = rBlock.getLocations();
+ DatanodeID[] datanodeids = (DatanodeID[])targets;
{code}
Updated patch, includes the comments as well so it's clear both classes are
using the same equals method.
> Fix DataNode.recoverBlock findbugs warning
> ------------------------------------------
>
> Key: HDFS-3837
> URL: https://issues.apache.org/jira/browse/HDFS-3837
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: data-node
> Affects Versions: 2.0.0-alpha
> Reporter: Eli Collins
> Assignee: Eli Collins
> Attachments: hdfs-3837.txt, hdfs-3837.txt, hdfs-3837.txt
>
>
> HDFS-2686 introduced the following findbugs warning:
> {noformat}
> Call to equals() comparing different types in
> org.apache.hadoop.hdfs.server.datanode.DataNode.recoverBlock(BlockRecoveryCommand$RecoveringBlock)
> {noformat}
> Both are using DatanodeID#equals but it's a different method because
> DNR#equals overrides equals for some reason (doesn't change behavior).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira