harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Ellison (JIRA)" <j...@apache.org>
Subject [jira] Closed: (HARMONY-206) HashMap's behavior is non-compliant with RI when key is reused
Date Tue, 28 Mar 2006 07:52:03 GMT
     [ http://issues.apache.org/jira/browse/HARMONY-206?page=all ]
     
Tim Ellison closed HARMONY-206:
-------------------------------


Verified by Paulex.

> HashMap's behavior is non-compliant with RI when key is reused
> --------------------------------------------------------------
>
>          Key: HARMONY-206
>          URL: http://issues.apache.org/jira/browse/HARMONY-206
>      Project: Harmony
>         Type: Bug
>   Components: Classlib
>     Reporter: Paulex Yang
>     Assignee: Tim Ellison
>     Priority: Minor
>  Attachments: java.util.patch, tests.api.java.util.patch
>
> As discussion in mailing list,  when hash key is reused by modify its hashcode, Harmony's
HashMap show different behavior with RI.  There are some ways to mimic RI's behavior, including
rehash the hash of key, and cache the hash when key/value pair is put into. I will attach
patches soon.
> Test case:
> public class HashMapTest { 
> public static void main(String[] args) { 
> 	ReusableKey k = new ReusableKey(); 
> 	HashMap map = new HashMap(); 
> 	k.setKey(1); 
> 	map.put(k, "value1"); 
> 	k.setKey(18); 
> 	System.out.println(map.get(k)); 
> 	k.setKey(17); 
> 	System.out.println(map.get(k)); 
> 	} 
> } 
> class ReusableKey{ 
> 	private int key = 0; 
> 	public void setKey(int key){ 
> 		this.key = key; 
> 	} 
> 	public int hashCode(){ 
> 		return key; 
> 	} 
> 	public boolean equals(Object o){ 
> 		if(o == this){ 
> 			return true; 
> 		} 
> 		if(!(o instanceof ReusableKey)){ 
> 			return false; 
> 		} 
> 		return key == ((ReusableKey)o).key; 
> 	} 
> } 
> RI 5.0 output:
>   null 
>   null 
> Harmony output:
>   null 
>   value1 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message