You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/01/04 18:22:00 UTC
svn commit: r895712 - in
/directory/apacheds/branches/apacheds-schema/avl-partition/src:
main/java/org/apache/directory/server/core/partition/avl/AvlStore.java
test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java
Author: seelmann
Date: Mon Jan 4 17:21:58 2010
New Revision: 895712
URL: http://svn.apache.org/viewvc?rev=895712&view=rev
Log:
Fixed the rename operation, values in RDN are already unescaped
Modified:
directory/apacheds/branches/apacheds-schema/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/AvlStore.java
directory/apacheds/branches/apacheds-schema/avl-partition/src/test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java
Modified: directory/apacheds/branches/apacheds-schema/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/AvlStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/AvlStore.java?rev=895712&r1=895711&r2=895712&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/AvlStore.java (original)
+++ directory/apacheds/branches/apacheds-schema/avl-partition/src/main/java/org/apache/directory/server/core/partition/avl/AvlStore.java Mon Jan 4 17:21:58 2010
@@ -35,7 +35,6 @@
import org.apache.directory.server.constants.ApacheSchemaConstants;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.entry.ServerAttribute;
-import org.apache.directory.server.core.entry.ServerBinaryValue;
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.entry.ServerStringValue;
import org.apache.directory.server.core.partition.impl.btree.LongComparator;
@@ -1378,25 +1377,10 @@
for ( AVA newAtav : newRdn )
{
String newNormType = newAtav.getNormType();
- String newNormValue = newAtav.getNormValue().getString();
+ Object newNormValue = newAtav.getNormValue().get();
AttributeType newRdnAttrType = schemaManager.lookupAttributeTypeRegistry( newNormType );
- Object unEscapedRdn = Rdn.unescapeValue( newAtav.getUpValue().getString() );
-
- Value<?> value = null;
-
- if ( unEscapedRdn instanceof String )
- {
- value = new ServerStringValue( newRdnAttrType, ( String ) unEscapedRdn );
- }
- else
- {
- value = new ServerBinaryValue( newRdnAttrType, ( byte[] ) unEscapedRdn );
- }
-
- value.normalize();
-
- entry.add( newRdnAttrType, value );
+ entry.add( newRdnAttrType, newAtav.getUpValue() );
if ( hasUserIndexOn( newNormType ) )
{
Modified: directory/apacheds/branches/apacheds-schema/avl-partition/src/test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-schema/avl-partition/src/test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java?rev=895712&r1=895711&r2=895712&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-schema/avl-partition/src/test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java (original)
+++ directory/apacheds/branches/apacheds-schema/avl-partition/src/test/java/org/apache/directory/server/core/partition/avl/AvlStoreTest.java Mon Jan 4 17:21:58 2010
@@ -737,6 +737,33 @@
@Test
+ public void testRenameEscaped() throws Exception
+ {
+ LdapDN dn = new LdapDN( "cn=Pivate Ryan,ou=Engineering,o=Good Times Co." );
+ dn.normalize( schemaManager.getNormalizerMapping() );
+ DefaultServerEntry entry = new DefaultServerEntry( schemaManager, dn );
+ entry.add( "objectClass", "top", "person", "organizationalPerson" );
+ entry.add( "ou", "Engineering" );
+ entry.add( "cn", "Private Ryan");
+ entry.add( "entryCSN", new CsnFactory( 1 ).newInstance().toString() );
+ entry.add( "entryUUID", SchemaUtils.uuidToBytes( UUID.randomUUID() ) );
+
+ store.add( entry );
+
+ Rdn rdn = new Rdn("sn=Ja\\+es");
+
+ store.rename( dn, rdn, true );
+
+ LdapDN dn2 = new LdapDN( "sn=Ja\\+es,ou=Engineering,o=Good Times Co." );
+ dn2.normalize( schemaManager.getNormalizerMapping() );
+ Long id = store.getEntryId( dn2.getNormName() );
+ assertNotNull( id );
+ ServerEntry entry2 = store.lookup( id );
+ assertEquals("Ja+es", entry2.get( "sn" ).getString());
+ }
+
+
+ @Test
public void testMove() throws Exception
{
LdapDN childDn = new LdapDN( "cn=Pivate Ryan,ou=Engineering,o=Good Times Co." );