Return-Path: Delivered-To: apmail-incubator-harmony-commits-archive@www.apache.org Received: (qmail 29833 invoked from network); 5 Jun 2006 06:04:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 5 Jun 2006 06:04:30 -0000 Received: (qmail 195 invoked by uid 500); 5 Jun 2006 06:04:29 -0000 Delivered-To: apmail-incubator-harmony-commits-archive@incubator.apache.org Received: (qmail 108 invoked by uid 500); 5 Jun 2006 06:04:29 -0000 Mailing-List: contact harmony-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-commits@incubator.apache.org Received: (qmail 99996 invoked by uid 99); 5 Jun 2006 06:04:29 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Jun 2006 23:04:29 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [209.237.227.198] (HELO brutus.apache.org) (209.237.227.198) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Jun 2006 23:04:28 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 2A7C571428E for ; Mon, 5 Jun 2006 06:03:30 +0000 (GMT) Message-ID: <3354061.1149487410150.JavaMail.jira@brutus> Date: Mon, 5 Jun 2006 06:03:30 +0000 (GMT+00:00) From: "Mark Hindess (JIRA)" To: harmony-commits@incubator.apache.org Subject: [jira] Commented: (HARMONY-403) HashMap hashcode ignores values in entries In-Reply-To: <27861878.1145882825682.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/HARMONY-403?page=comments#action_12414698 ] Mark Hindess commented on HARMONY-403: -------------------------------------- Nathan, that test case was a very bad example. This test is better: public void test_hashCode() { HashMap map = new HashMap(10); Integer key = new Integer(1); Integer val = new Integer(2); map.put(key, val); int expected = key.hashCode() ^ val.hashCode(); assertEquals(expected, map.hashCode()); key = new Integer(4); val = new Integer(8); map.put(key, val); expected += key.hashCode() ^ val.hashCode(); assertEquals(expected, map.hashCode()); } Since the hashCode for Integer is defined as: a hash code value for this object, equal to the primitive int value represented by this Integer object. and the hashCode for HashMap (actually from AbstractMap) is: This implementation iterates over entrySet(), calling hashCode on each element (entry) in the Collection, and adding up the results. then the hashCode value in the above tests are well-defined for any RI. This tests fails on Harmony. > HashMap hashcode ignores values in entries > ------------------------------------------ > > Key: HARMONY-403 > URL: http://issues.apache.org/jira/browse/HARMONY-403 > Project: Harmony > Type: Bug > Components: Classlib > Reporter: Mark Hindess > Priority: Minor > Attachments: fix.hashmap.hashcode.diff, hashmap.hashcodes.should.differ.diff > > While it is obviously trivial to create different HashMaps with identical hashCodes, I'd still expect the following test code to pass: > HashMap map1 = new HashMap(10); > HashMap map2 = new HashMap(10); > map1.put("key", "1"); > map2.put("key", "2"); > assertFalse(map1.hashCode() == map2.hashCode()); > That is, I'd expect the 'value' associated with "key" to have some impact on the hashCode. It passes on the reference implementations I tested. -- 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