[
https://issues.apache.org/jira/browse/HDFS-3837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443827#comment-13443827
]
Eli Collins commented on HDFS-3837:
-----------------------------------
I investigated some more and confirmed findbugs isn't searching back far enough
for the common subclass. Eg if I swap variables in the equals call I get:
{noformat}
org.apache.hadoop.hdfs.protocol.DatanodeInfo.equals(Object) used to determine
equality
org.apache.hadoop.hdfs.server.common.JspHelper$NodeRecord.equals(Object) used
to determine equality
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor.equals(Object)
used to determine equality
At DataNode.java:[line 1871]
{noformat}
It stops at DatanodeDescriptor#equals even though this calls super.equals
(DatanodeInfo) which calls super.equals (DatanodeID). Just like the current
warning stops at DatanodeRegistration#equals which calls super.equals
(DatanodeID).
It would be better (and findbugs wouldn't choke) if the various classes that
extend DatanodeID have a member instead. I looked at this for HDFS-3237 and it
required a ton of changes that probably aren't worth it.
Given this I'll update the patch per your suggestion Surresh to ignore the
warning in DataNode#recoverBlock.
> 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-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