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/02/15 02:34:32 UTC

svn commit: r377914 - in /directory/sandbox/akarasulu/rc1/shared/ldap/src: main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java

Author: elecharny
Date: Tue Feb 14 17:34:30 2006
New Revision: 377914

URL: http://svn.apache.org/viewcvs?rev=377914&view=rev
Log:
Fixed the DN parser to handle special DNs like those
presented in  DIRSERVER-578

Modified:
    directory/sandbox/akarasulu/rc1/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java
    directory/sandbox/akarasulu/rc1/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java

Modified: directory/sandbox/akarasulu/rc1/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java?rev=377914&r1=377913&r2=377914&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java (original)
+++ directory/sandbox/akarasulu/rc1/shared/ldap/src/main/java/org/apache/directory/shared/ldap/name/LdapDnParser.java Tue Feb 14 17:34:30 2006
@@ -126,7 +126,14 @@
                     && ( StringTools.isCharASCII( chars, pos, ';' ) == false ) )
                 {
 
-                    break;
+                    if ( pos != chars.length )
+                    {
+                        throw new InvalidNameException( "Bad DN : " + new String( chars ) );
+                    }
+                    else
+                    {
+                        break;
+                    }
                 }
 
                 chars[pos] = ',';

Modified: directory/sandbox/akarasulu/rc1/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/akarasulu/rc1/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java?rev=377914&r1=377913&r2=377914&view=diff
==============================================================================
--- directory/sandbox/akarasulu/rc1/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java (original)
+++ directory/sandbox/akarasulu/rc1/shared/ldap/src/test/java/org/apache/directory/shared/ldap/name/LdapDnParserTest.java Tue Feb 14 17:34:30 2006
@@ -522,4 +522,30 @@
         assertEquals( cn, result.toString() );
 
     }
+
+    /**
+     * Test to check that even with a non escaped char, the DN is parsed ok
+     * or at least an error is generated. 
+     * 
+     * @throws NamingException
+     *             if anything goes wrong on parse()
+     */
+    public final void testNonEscapedChars() throws NamingException
+    {
+        NameParser parser = LdapDnParser.getNameParser();
+        String input = "ou=ou=test";
+        
+        try
+        {
+            parser.parse( input ).toString();
+        }
+        catch ( NamingException ne )
+        {
+            assertTrue( true );
+            return;
+        }
+        
+        fail( "Should never rech this point" );
+    }
+
 }