[ 
https://issues.apache.org/jira/browse/HBASE-1976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777138#action_12777138
 ] 

stack commented on HBASE-1976:
------------------------------

Good one.

That we make a hashcode on the HBaseConfiguration looks kinda broke to me; that 
its done w/o a companion equals is doubly broke.

Hadoop Configuration does not hashcode nor equals.  Doing this on a 
Configuration object, especially a fat one like the Hadoop Configuration would 
be expensive (might hash the paths of the files read to make up the 
Configuration).   Seems like folks have been able to live w/o wanting to use an 
Hadoop Configuration as a key in a map or without having to call equals on the 
config.  That seems reasonable.

Only in hbase, we do use HBaseConfiguration as a key.  Its put into a static 
hash in the client.  The HBC instance is used to key the Map of cached regions. 
 The way it does this -- keying caches by HBC instance -- is broke too.

Lets REMOVE hashcode from HBC.  Having other than object equivalence would be 
expensive to maintain.  Need to fix client so it doesn't use HBC as a key as 
part of this issue.

> HBaseConfiguration implements hashCode() without implementing equals()
> ----------------------------------------------------------------------
>
>                 Key: HBASE-1976
>                 URL: https://issues.apache.org/jira/browse/HBASE-1976
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.20.1
>         Environment: HBase
>            Reporter: Age Mooij
>
> I was browsing though the HBase 0.20.1 code in order to learn about the way 
> HBase deals with Configuration and I noticed that HBaseConfiguration 
> overrides hashCode() without implementing equals(). This can cause some 
> tricky, hard to debug problems whenever instances of this class are added to 
> Maps or HashSets.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to