[ https://issues.apache.org/jira/browse/HADOOP-11221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14183503#comment-14183503 ]
Jinghui Wang commented on HADOOP-11221: --------------------------------------- Thanks for the clarification. I missed the orignal divide by 2. Patch updated. > 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 > Attachments: HADOOP-11221.patch, HADOOP-11221.v1.patch, > HADOOP-11221.v2.patch > > > 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)