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 07:20:07 UTC
svn commit: r548593 - 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 22:20:06 2007
New Revision: 548593
URL: http://svn.apache.org/viewvc?view=rev&rev=548593
Log:
Apply patch HARMONY-4228 [[classlib][jndi] Rdn.toAttributes() returns different result from RI)
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=548593&r1=548592&r2=548593
==============================================================================
--- 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 22:20:06 2007
@@ -31,10 +31,12 @@
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import org.apache.harmony.jndi.internal.nls.Messages;
import org.apache.harmony.jndi.internal.parser.LdapRdnParser;
+import org.apache.harmony.jndi.internal.parser.LdapTypeAndValueList;
/**
*
@@ -182,13 +184,18 @@
}
private List<Attribute> convertToAttributeArrayList(Attributes attrList) {
- List<Attribute> myList = new ArrayList<Attribute>();
+ LdapTypeAndValueList myList = new LdapTypeAndValueList();
NamingEnumeration<? extends Attribute> ne = attrList.getAll();
- while (ne.hasMoreElements()) {
- myList.add((Attribute)ne.nextElement().clone());
+ try {
+ while (ne.hasMoreElements()) {
+ Attribute attr = ne.nextElement();
+ myList.put(attr.getID(), attr.get());
+ }
+ } catch (NamingException e){
+
}
- return myList;
+ return myList.toAttributeList();
}
/**
@@ -309,11 +316,21 @@
* @ar.org.fitc.spec_ref
*/
public Attributes toAttributes() {
- BasicAttributes ba = new BasicAttributes(true);
+ BasicAttributes bas = new BasicAttributes(true);
for (Iterator<Attribute> iter = list.iterator(); iter.hasNext();) {
- ba.put((Attribute) iter.next().clone());
+ Attribute attr = iter.next();
+ BasicAttribute ba = new BasicAttribute(attr.getID(), false);
+ try {
+ NamingEnumeration nameEnum = attr.getAll();
+ while (nameEnum.hasMore()) {
+ ba.add(nameEnum.next());
+ }
+ } catch (NamingException ne) {
+
+ }
+ bas.put(ba);
}
- return ba;
+ return bas;
}
/**
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=548593&r1=548592&r2=548593
==============================================================================
--- 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 22:20:06 2007
@@ -544,6 +544,15 @@
} catch (InvalidNameException e) {}
}
+ public void testRdnString027() {
+ try {
+ Rdn rdn1 = new Rdn("t", "test");
+ Rdn rdn2 = new Rdn("t = test + t = test");
+ assertFalse(rdn1.equals(rdn2));
+ assertEquals(rdn1.toAttributes(), rdn2.toAttributes());
+ } catch (InvalidNameException e) {}
+ }
+
/**
* <p>
* Test method for 'javax.naming.ldap.Rdn.Rdn(Rdn)'