You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2007/06/19 03:59:27 UTC
svn commit: r548555 - in /harmony/enhanced/classlib/trunk/modules/jndi/src:
main/java/javax/naming/ldap/Rdn.java
test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java
Author: tonywu
Date: Mon Jun 18 18:59:26 2007
New Revision: 548555
URL: http://svn.apache.org/viewvc?view=rev&rev=548555
Log:
Apply patch HARMONY-4211 ([classlib][jndi] Rdn.hashCode() returns different value for the same rdn strings)
Modified:
harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/ldap/Rdn.java
harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java
Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/ldap/Rdn.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/ldap/Rdn.java?view=diff&rev=548555&r1=548554&r2=548555
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/ldap/Rdn.java (original)
+++ harmony/enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/ldap/Rdn.java Mon Jun 18 18:59:26 2007
@@ -68,7 +68,7 @@
return LdapRdnParser.unescapeValue(val);
}
- private List<Attribute> list;
+ private transient List<Attribute> list;
private transient LdapRdnParser parser;
@@ -280,6 +280,9 @@
while (en.hasMoreElements()) {
Object obj = en.nextElement();
+ if (obj instanceof byte[]) {
+ obj = new String((byte[])obj);
+ }
try {
String s = (String) obj;
sum += escapeValue(s.toLowerCase()).hashCode();
Modified: harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java?view=diff&rev=548555&r1=548554&r2=548555
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/RdnTest.java Mon Jun 18 18:59:26 2007
@@ -23,10 +23,8 @@
*/
package org.apache.harmony.jndi.tests.javax.naming.ldap;
-import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.NoSuchElementException;
-import java.util.concurrent.atomic.AtomicIntegerArray;
import javax.naming.InvalidNameException;
import javax.naming.NamingEnumeration;
@@ -735,6 +733,26 @@
int y = new Rdn("T=TEST\\, THAT+S=THIS").hashCode();
assertNotSame(0, x & y);
assertEquals(x, y);
+ }
+
+ /**
+ * <p>
+ * Test method for 'javax.naming.ldap.Rdn.hashCode()'
+ * </p>
+ * <p>
+ * Here we are testing if this method returns the hash code of this RDN, in
+ * this case we are testing if the hashcode returned by this method is the
+ * correct one, the only hash that we know something is of the Rdn empty,
+ * this hash has to be zero.
+ * </p>
+ * <p>
+ * The expected result is the hashcode of the rdn.
+ * </p>
+ */
+ public void testHashCode002() throws Exception {
+ int x = new Rdn("t= #20").hashCode();
+ int y = new Rdn("t= #20").hashCode();
+ assertTrue(x == y);
}
/**