You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/08/26 19:25:28 UTC

svn commit: r437188 - in /directory/trunks/apacheds: core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java

Author: akarasulu
Date: Sat Aug 26 10:25:28 2006
New Revision: 437188

URL: http://svn.apache.org/viewvc?rev=437188&view=rev
Log:
Fix for DIRSERVER-717: RFC2713 integration test fails

Modified:
    directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java
    directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java

Modified: directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java?rev=437188&r1=437187&r2=437188&view=diff
==============================================================================
--- directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java (original)
+++ directory/trunks/apacheds/core-unit/src/test/java/org/apache/directory/server/core/jndi/RFC2713ITest.java Sat Aug 26 10:25:28 2006
@@ -39,7 +39,6 @@
 {
     public void testSerialization() throws Exception
     {
-        /*
         ArrayList colors = new ArrayList();
         colors.add( "red" );
         colors.add( "white" );
@@ -71,6 +70,5 @@
         attr = attrs.get( "javaSerializedData" );
         assertNotNull( attr );
         assertEquals( 1, attr.size() );
-        */
     }
 }

Modified: directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java?rev=437188&r1=437187&r2=437188&view=diff
==============================================================================
--- directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java (original)
+++ directory/trunks/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java Sat Aug 26 10:25:28 2006
@@ -299,20 +299,7 @@
     {
         Attributes attributes = new LockableAttributesImpl();
         LdapDN target = buildTarget( name );
-
-        Rdn rdn = target.getRdn( target.size() - 1 );
-        if ( rdn.size() == 1 )
-        {
-            attributes.put( rdn.getType(), rdn.getValue() );
-        }
-        else
-        {
-            for ( Iterator ii = rdn.iterator(); ii.hasNext(); /**/ )
-            {
-                AttributeTypeAndValue atav = ( AttributeTypeAndValue ) ii.next();
-                attributes.put( atav.getType(), atav.getValue() );
-            }
-        }
+        injectRdnAttributeValues( target, attributes );
         
         attributes.put( JavaLdapSupport.OBJECTCLASS_ATTR, JavaLdapSupport.JCONTAINER_ATTR );
         attributes.put( JavaLdapSupport.OBJECTCLASS_ATTR, JavaLdapSupport.TOP_ATTR );
@@ -361,7 +348,26 @@
         bind( new LdapDN( name ), obj );
     }
 
+    
+    private void injectRdnAttributeValues( LdapDN target, Attributes attributes ) throws NamingException
+    {
+        // Add all the RDN attributes and their values to this entry
+        Rdn rdn = target.getRdn( target.size() - 1 );
+        if ( rdn.size() == 1 )
+        {
+            attributes.put( rdn.getType(), rdn.getValue() );
+        }
+        else
+        {
+            for ( Iterator ii = rdn.iterator(); ii.hasNext(); /**/ )
+            {
+                AttributeTypeAndValue atav = ( AttributeTypeAndValue ) ii.next();
+                attributes.put( atav.getType(), atav.getValue() );
+            }
+        }
+    }
 
+    
     /**
      * @see javax.naming.Context#bind(javax.naming.Name, java.lang.Object)
      */
@@ -403,7 +409,9 @@
                 }
             }
 
+            // Get target and inject all rdn attributes into entry
             LdapDN target = buildTarget( name );
+            injectRdnAttributeValues( target, attributes );
 
             // Serialize object into entry attributes and add it.
             JavaLdapSupport.serialize( attributes, obj );
@@ -423,6 +431,7 @@
             }
 
             LdapDN target = buildTarget( name );
+            injectRdnAttributeValues( target, attributes );
             nexusProxy.add( target, attributes );
         }
         else