This fixes the "hashCode" method to comply with the OpenJDK
documentation. Now we pass all the public domain tck tests for this
class, except the SubList one.
Thanks,
Mario
2008-03-26 Mario Torre <[EMAIL PROTECTED]>
* java/util/concurrent/CopyOnWriteArrayList.java (equals):
removed useless local variable.
(hashCode): new method.
--
Mario Torre, Software Developer, http://www.jroller.com/neugens/
aicas Allerton Interworks Computer Automated Systems GmbH
Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
http://www.aicas.com * Tel: +49-721-663 968-53
pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF
Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF
USt-Id: DE216375633, Handelsregister HRB 109481, AG Mannheim
Geschäftsführer: Dr. James J. Hunt
Please, support open standards:
http://opendocumentfellowship.org/petition/
http://www.nosoftwarepatents.com/
### Eclipse Workspace Patch 1.0
#P classpath
Index: java/util/concurrent/CopyOnWriteArrayList.java
===================================================================
RCS file: /sources/classpath/classpath/java/util/concurrent/CopyOnWriteArrayList.java,v
retrieving revision 1.7
diff -u -r1.7 CopyOnWriteArrayList.java
--- java/util/concurrent/CopyOnWriteArrayList.java 25 Mar 2008 19:56:29 -0000 1.7
+++ java/util/concurrent/CopyOnWriteArrayList.java 26 Mar 2008 11:18:33 -0000
@@ -705,8 +705,6 @@
if (this == o)
return true;
- boolean _equals = false;
-
// let's see if 'o' is a list, if so, we need to compare the elements
// as returned by the iterator
if (o instanceof List)
@@ -723,10 +721,21 @@
return false;
}
- _equals = true;
+ return true;
+ }
+
+ return false;
+ }
+
+ public int hashCode()
+ {
+ // see http://java.sun.com/6/docs/api/java/util/List.html#hashcode()
+ int hashcode = 1;
+ for (E element : this)
+ {
+ hashcode = 31 * hashcode + (element == null ? 0 : element.hashCode());
}
-
- return _equals;
+ return hashcode;
}
/**
Index: ChangeLog
===================================================================
RCS file: /sources/classpath/classpath/ChangeLog,v
retrieving revision 1.9566
diff -u -r1.9566 ChangeLog
--- ChangeLog 25 Mar 2008 19:56:30 -0000 1.9566
+++ ChangeLog 26 Mar 2008 11:18:33 -0000
@@ -1,3 +1,9 @@
+2008-03-26 Mario Torre <[EMAIL PROTECTED]>
+
+ * java/util/concurrent/CopyOnWriteArrayList.java (equals): removed useless
+ local variable.
+ (hashCode): new method.
+
2008-03-25 Mario Torre <[EMAIL PROTECTED]>
* java/util/concurrent/CopyOnWriteArrayList.java (clone): clone method