Author: akarasulu Date: Thu Jan 4 19:21:36 2007 New Revision: 492890 URL: http://svn.apache.org/viewvc?view=rev&rev=492890 Log: bypass normalization on empty string dn and do not allow add("") to generate a malformed RDN Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java?view=diff&rev=492890&r1=492889&r2=492890 ============================================================================== --- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java (original) +++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDN.java Thu Jan 4 19:21:36 2007 @@ -1008,6 +1008,11 @@ */ public Name add( String comp ) throws InvalidNameException { + if ( comp.length() == 0 ) + { + return this; + } + // We have to parse the nameComponent which is given as an argument Rdn newRdn = new Rdn( comp ); @@ -1423,6 +1428,11 @@ return; } + if ( size() == 0 ) + { + return; + } + Enumeration localRdns = getAllRdn(); // Loop on all RDNs Modified: directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java?view=diff&rev=492890&r1=492889&r2=492890 ============================================================================== --- directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java (original) +++ directory/trunks/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java Thu Jan 4 19:21:36 2007 @@ -2767,11 +2767,20 @@ assertEquals( "cn=xyz,cn=blah,dc=example,dc=com", ldapDn.toString() ); } + public void testDNEquals() throws NamingException { LdapDN dn1 = new LdapDN( "a=b,c=d,e=f" ); LdapDN dn2 = new LdapDN( "a=b\\,c\\=d,e=f" ); assertFalse( dn1.toString().equals( dn2.toString() ) ); + } + + + public void testDNAddEmptyString() throws NamingException + { + LdapDN dn = new LdapDN(); + assertTrue( dn.size() == 0 ); + assertTrue( dn.add( "" ).size() == 0 ); } }