You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2018/10/15 21:21:00 UTC
[jira] [Created] (IMPALA-7711) Hash code improvements for
CatalogdMetaProvider
Paul Rogers created IMPALA-7711:
-----------------------------------
Summary: Hash code improvements for CatalogdMetaProvider
Key: IMPALA-7711
URL: https://issues.apache.org/jira/browse/IMPALA-7711
Project: IMPALA
Issue Type: Improvement
Affects Versions: Impala 3.2.0
Reporter: Paul Rogers
Consider the classes nested within {{CatalogdMetaProvider}}. A number of hashing-related items could use attention.
First, the code uses {{com.google.common.base.Objects}}, however, the Guava docs state:
{quote}
Note for Java 7 and later: This method should be treated as deprecated; use Objects.hash(java.lang.Object...) instead.
{quote}
Second, hash codes are combined incorrectly. Consider:
{code:java}
public int hashCode() {
return Objects.hashCode(super.hashCode(), version_);
}
{code}
Note that this takes the hash code from the super can hashes it again in the subclass. The Java library combines hash codes as follows:
{code:java}
public int hashCode() {
return super.hashCode() * 31 + Objects.hashCode(version_);
}
{code}
Could find no reference to a standard JDK or Guava function that combines hash codes, perhaps we should create one.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org