You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Jinghui Wang (JIRA)" <ji...@apache.org> on 2014/10/23 20:18:33 UTC
[jira] [Updated] (HADOOP-11221) JAVA specification for hashcode
does not enforce it to be non-negative, but IdentityHashStore assumes
System.identityHashCode() is non-negative
[ https://issues.apache.org/jira/browse/HADOOP-11221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jinghui Wang updated HADOOP-11221:
----------------------------------
Description:
The following code snippet shows that IdentityHashStore assumes the hashCode is always non-negative.
{code borderStyle=solid}
private void putInternal(Object k, Object v) {
int hash = System.identityHashCode(k);
final int numEntries = buffer.length / 2;
int index = hash % numEntries;
...
}
private int getElementIndex(K k) {
...
final int numEntries = buffer.length / 2;
int hash = System.identityHashCode(k);
int index = hash % numEntries;
int firstIndex = index;
...
}
{code}
was:
The following code snippet shows that IdentityHashStore assumes the hashCode is always non-negative.
{code:title=Bar.java|borderStyle=solid}
private void putInternal(Object k, Object v) {
int hash = System.identityHashCode(k);
final int numEntries = buffer.length / 2;
int index = hash % numEntries;
...
}
private int getElementIndex(K k) {
...
final int numEntries = buffer.length / 2;
int hash = System.identityHashCode(k);
int index = hash % numEntries;
int firstIndex = index;
...
}
{code}
> JAVA specification for hashcode does not enforce it to be non-negative, but IdentityHashStore assumes System.identityHashCode() is non-negative
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HADOOP-11221
> URL: https://issues.apache.org/jira/browse/HADOOP-11221
> Project: Hadoop Common
> Issue Type: Bug
> Components: util
> Affects Versions: 2.4.1
> Reporter: Jinghui Wang
> Assignee: Jinghui Wang
>
> The following code snippet shows that IdentityHashStore assumes the hashCode is always non-negative.
> {code borderStyle=solid}
> private void putInternal(Object k, Object v) {
> int hash = System.identityHashCode(k);
> final int numEntries = buffer.length / 2;
> int index = hash % numEntries;
> ...
> }
>
> private int getElementIndex(K k) {
> ...
> final int numEntries = buffer.length / 2;
> int hash = System.identityHashCode(k);
> int index = hash % numEntries;
> int firstIndex = index;
> ...
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)