Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6D2226D95 for ; Wed, 1 Jun 2011 17:03:47 +0000 (UTC) Received: (qmail 85512 invoked by uid 500); 1 Jun 2011 17:03:47 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 85459 invoked by uid 500); 1 Jun 2011 17:03:46 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 85448 invoked by uid 99); 1 Jun 2011 17:03:46 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 17:03:46 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jun 2011 17:03:44 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C6B5723889BF; Wed, 1 Jun 2011 17:03:22 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1130225 - in /directory: apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/ shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/ Date: Wed, 01 Jun 2011 17:03:22 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110601170322.C6B5723889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: elecharny Date: Wed Jun 1 17:03:22 2011 New Revision: 1130225 URL: http://svn.apache.org/viewvc?rev=1130225&view=rev Log: Fixed a pb in training escaped spaces in RDN (DIRSERVER-1440) Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddingEntriesWithSpecialCharactersInRDNIT.java directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifReader.java Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddingEntriesWithSpecialCharactersInRDNIT.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddingEntriesWithSpecialCharactersInRDNIT.java?rev=1130225&r1=1130224&r2=1130225&view=diff ============================================================================== --- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddingEntriesWithSpecialCharactersInRDNIT.java (original) +++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/server/operations/add/AddingEntriesWithSpecialCharactersInRDNIT.java Wed Jun 1 17:03:22 2011 @@ -20,6 +20,7 @@ package org.apache.directory.server.operations.add; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -364,4 +365,29 @@ public class AddingEntriesWithSpecialCha connection.delete( dn ); connection.close(); } + + + @Test + public void testAddRdnWithEscapedSpaces() throws Exception + { + LdapConnection connection = ServerIntegrationUtils.getClientApiConnection( getLdapServer() ); + + Entry entry = new DefaultEntry( + "cn=\\ User, ou=system", + "objectClass: top", + "objectClass: person", + "objectClass: organizationalPerson", + "objectClass: inetOrgPerson", + "cn: \\ User", + "sn: \\ Name\\ " ); + + connection.add( entry ); + + Entry addedEntry = connection.lookup( "cn=\\ User, ou=system" ); + + assertNotNull( addedEntry ); + + assertEquals( "\\ Name\\ ", addedEntry.get( "sn" ).getString() ); + assertEquals( "\\ User", addedEntry.get( "cn" ).getString() ); + } } \ No newline at end of file Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifReader.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifReader.java?rev=1130225&r1=1130224&r2=1130225&view=diff ============================================================================== --- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifReader.java (original) +++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifReader.java Wed Jun 1 17:03:22 2011 @@ -691,7 +691,36 @@ public class LdifReader implements Itera } else { - return Strings.trim(line.substring(pos + 1)); + String value = Strings.trimLeft( line.substring( pos + 1 ) ); + int end = value.length(); + + for ( int i = value.length() - 1; i > 0; i-- ) + { + char cc = value.charAt( i ); + + if ( cc == ' ' ) + { + if ( value.charAt( i - 1 ) == '\\' ) + { + // Escaped space : do nothing + break; + } + else + { + end = i; + } + } + else + { + break; + } + } + + String result = null; + + result = value.substring( 0, end ); + + return result; } } else