You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ma...@apache.org on 2007/08/13 01:45:31 UTC

svn commit: r565207 - in /directory/apacheds/trunk/mitosis/src: main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java

Author: malderson
Date: Sun Aug 12 16:45:30 2007
New Revision: 565207

URL: http://svn.apache.org/viewvc?view=rev&rev=565207
Log:
Fix for DIRSERVER-1013, where an extra OID RDN was being created for new entries when the replication service was enabled.

Added:
    directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java
Modified:
    directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java

Modified: directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java?view=diff&rev=565207&r1=565206&r2=565207
==============================================================================
--- directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java (original)
+++ directory/apacheds/trunk/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java Sun Aug 12 16:45:30 2007
@@ -35,7 +35,6 @@
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
 import org.apache.directory.shared.ldap.name.LdapDN;
-import org.apache.directory.shared.ldap.util.NamespaceTools;
 
 
 /**
@@ -92,12 +91,6 @@
             recursiveDelete( nexus, normalizedName, registry );
         }
 
-        String rdn = normalizedName.get( normalizedName.size() - 1 );
-        // Remove the attribute first in case we're using a buggy 
-        // AttributesImpl which doesn't replace old attributes
-        // when we put a new one.
-        entry.remove( NamespaceTools.getRdnAttribute( rdn ) );
-        entry.put( NamespaceTools.getRdnAttribute( rdn ), NamespaceTools.getRdnValue( rdn ) );
         nexus.add( new AddOperationContext( normalizedName, entry ) );
     }
 

Added: directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java?view=auto&rev=565207
==============================================================================
--- directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java (added)
+++ directory/apacheds/trunk/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java Sun Aug 12 16:45:30 2007
@@ -0,0 +1,61 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *  
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *  
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License. 
+ *  
+ */
+package org.apache.directory.mitosis.service;
+
+import javax.naming.directory.Attributes;
+import javax.naming.ldap.LdapContext;
+
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.message.AttributesImpl;
+
+
+/**
+ * A test case for DIRSERVER-1013: "Extra RDN attribute created".
+ * 
+ * When mitosis is enabled and an entry is added the OID of the RDN
+ * attribute is added as an extra attribute. As an example, if an
+ * entry ou=test,ou=system is added then it will have attributes
+ * ou=test and 2.5.4.11=test.
+ * 
+ * @author The Apache Directory Project Team (dev@directory.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class DIRSERVER1013ITest extends AbstractReplicationServiceTestCase
+{
+    protected void setUp() throws Exception
+    {
+        // Create two replicas as we currently can't have the
+        // replication service enabled without more than one.
+        createReplicas( new String[] { "A", "B" } );
+    }
+    
+    public void testNoRDNOID () throws Exception
+    {
+        LdapContext ctxA = getReplicaContext( "A" );
+        
+        Attributes entry = new AttributesImpl( true );
+        entry.put( "cn", "test" );
+        entry.put( "objectClass", "top" ).add( "extensibleObject" );
+        ctxA.bind( "cn=test,ou=system", null, entry );
+        
+        Attributes attributes = ctxA.getAttributes( "cn=test,ou=system" );
+        assertNull( attributes.get( SchemaConstants.CN_AT_OID ) );
+    }
+}