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)