You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2006/08/13 13:41:44 UTC
svn commit: r431163 - in /directory/branches/shared/0.9.5/ldap/src:
main/java/org/apache/directory/shared/ldap/name/RdnParser.java
test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
test/java/org/apache/directory/shared/ldap/name/RdnTest.java
Author: elecharny
Date: Sun Aug 13 04:41:43 2006
New Revision: 431163
URL: http://svn.apache.org/viewvc?rev=431163&view=rev
Log:
Fixed DIRSERVER_703. The upName was computed too early in the process, I just
moved one line down in the parser (not totally randomly :)
Modified:
directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/RdnParser.java
directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java
Modified: directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/RdnParser.java
URL: http://svn.apache.org/viewvc/directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/RdnParser.java?rev=431163&r1=431162&r2=431163&view=diff
==============================================================================
--- directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/RdnParser.java (original)
+++ directory/branches/shared/0.9.5/ldap/src/main/java/org/apache/directory/shared/ldap/name/RdnParser.java Sun Aug 13 04:41:43 2006
@@ -259,6 +259,8 @@
*/
private static String parseAttributeValue( String string, Position pos )
{
+ StringBuffer sb = new StringBuffer();
+
char c = StringTools.charAt( string, pos.start );
if ( c == '#' )
@@ -340,6 +342,18 @@
}
else
{
+ if ( nbChars == 1 )
+ {
+ sb.append( string.charAt( pos.end ) );
+ }
+ else
+ {
+ byte b = (byte)((StringTools.HEX_VALUE[string.charAt( pos.end )] << 4) +
+ StringTools.HEX_VALUE[string.charAt( pos.end + 1 )]);
+
+ sb.append( b );
+ }
+
pos.end += nbChars;
}
}
@@ -656,7 +670,6 @@
if ( rdn != null )
{
rdn.addAttributeTypeAndValue( type, value );
- rdn.setUpName( dn.substring( start, pos.end ) );
rdn.normalizeString();
pos.start = pos.end;
@@ -664,7 +677,8 @@
}
parseNameComponents( dn, pos, rdn );
-
+
+ rdn.setUpName( dn.substring( start, pos.end ) );
pos.start = pos.end;
return DNUtils.PARSING_OK;
}
Modified: directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java
URL: http://svn.apache.org/viewvc/directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java?rev=431163&r1=431162&r2=431163&view=diff
==============================================================================
--- directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java (original)
+++ directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDNTest.java Sun Aug 13 04:41:43 2006
@@ -175,6 +175,20 @@
/**
+ * Test to see if a DN with multiRdn values is preserved after an addAll.
+ */
+ public void testAddAllWithMultivaluedAttribute() throws InvalidNameException
+ {
+ LdapDN dn = new LdapDN( "cn=Kate Bush+sn=Bush,ou=system" );
+ LdapDN target = new LdapDN();
+ target.addAll( target.size(), dn );
+ assertEquals( "cn=Kate Bush+sn=Bush,ou=system", target.toString() );
+ System.out.println( target.getUpName() );
+ assertEquals( "cn=Kate Bush+sn=Bush,ou=system", target.getUpName() );
+ }
+
+
+ /**
* test a simple DN with an oid prefix (uppercase) : OID.12.34.56 = azerty
*/
public void testLdapDNOidUpper() throws InvalidNameException
Modified: directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java
URL: http://svn.apache.org/viewvc/directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java?rev=431163&r1=431162&r2=431163&view=diff
==============================================================================
--- directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java (original)
+++ directory/branches/shared/0.9.5/ldap/src/test/java/org/apache/directory/shared/ldap/name/RdnTest.java Sun Aug 13 04:41:43 2006
@@ -491,4 +491,10 @@
Assert.assertEquals( "\\\\\\00-\\+\\#\\7F-", res );
}
+
+ public void testDIRSERVER_703() throws InvalidNameException
+ {
+ Rdn rdn = new Rdn( "cn=Kate Bush+sn=Bush" );
+ assertEquals( "cn=Kate Bush+sn=Bush", rdn.getUpName() );
+ }
}