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 2010/06/23 16:58:04 UTC

svn commit: r957232 [1/2] - in /directory: apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/ apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/ apacheds/trunk/core/src/main/java/or...

Author: elecharny
Date: Wed Jun 23 14:58:04 2010
New Revision: 957232

URL: http://svn.apache.org/viewvc?rev=957232&view=rev
Log:
applied back http://svn.apache.org/viewvc?rev=956033&view=rev

Modified:
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java
    directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ImmutableAttributeTypeRegistry.java

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java?rev=957232&r1=957231&r2=957232&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java Wed Jun 23 14:58:04 2010
@@ -73,92 +73,34 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+
 /**
  * Tests the search() methods of the provider.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-@RunWith ( FrameworkRunner.class )
-@CreateDS( name="SearchDS" )
+@RunWith(FrameworkRunner.class)
+@CreateDS(name = "SearchDS")
 @ApplyLdifs(
-    {
-        "dn: m-oid=2.2.0, ou=attributeTypes, cn=apachemeta, ou=schema",
-        "objectclass: metaAttributeType",
-        "objectclass: metaTop",
-        "objectclass: top",
-        "m-oid: 2.2.0",
-        "m-name: integerAttribute",
-        "m-description: the precursor for all integer attributes",
-        "m-equality: integerMatch",
-        "m-ordering: integerOrderingMatch",
-        "m-syntax: 1.3.6.1.4.1.1466.115.121.1.27",
-        "m-length: 0",
-        "",
-        "dn: ou=testing00,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing00",
-        "integerAttribute: 0",
-        "",
-        "dn: ou=testing01,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing01",
-        "integerAttribute: 1",
-        "",
-        "dn: ou=testing02,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing02",
-        "integerAttribute: 2",
-        "",
-        "dn: ou=testing03,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing03",
-        "integerAttribute: 3",
-        "",
-        "dn: ou=testing04,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing04",
-        "integerAttribute: 4",
-        "",
-        "dn: ou=testing05,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "objectClass: extensibleObject",
-        "ou: testing05",
-        "integerAttribute: 5",
-        "",
-        "dn: ou=subtest,ou=testing01,ou=system",
-        "objectClass: top",
-        "objectClass: organizationalUnit",
-        "ou: subtest",
-        "",
-        "dn: cn=Heather Nova, ou=system",
-        "objectClass: top",
-        "objectClass: person",
-        "cn: Heather Nova",
-        "sn: Nova",
-        "telephoneNumber: 1 801 555 1212 ",
-        "",
-        "dn: cn=with-dn, ou=system",
-        "objectClass: top",
-        "objectClass: person",
-        "objectClass: organizationalPerson",
-        "objectClass: inetorgPerson",
-        "cn: singer",
-        "sn: manager",
-        "telephoneNumber: 1 801 555 1212 ",
-        "manager: cn=Heather Nova, ou=system"
-    }
-)
+    { "dn: m-oid=2.2.0, ou=attributeTypes, cn=apachemeta, ou=schema", "objectclass: metaAttributeType",
+        "objectclass: metaTop", "objectclass: top", "m-oid: 2.2.0", "m-name: integerAttribute",
+        "m-description: the precursor for all integer attributes", "m-equality: integerMatch",
+        "m-ordering: integerOrderingMatch", "m-syntax: 1.3.6.1.4.1.1466.115.121.1.27", "m-length: 0", "",
+        "dn: ou=testing00,ou=system", "objectClass: top", "objectClass: organizationalUnit",
+        "objectClass: extensibleObject", "ou: testing00", "integerAttribute: 0", "", "dn: ou=testing01,ou=system",
+        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing01",
+        "integerAttribute: 1", "", "dn: ou=testing02,ou=system", "objectClass: top", "objectClass: organizationalUnit",
+        "objectClass: extensibleObject", "ou: testing02", "integerAttribute: 2", "", "dn: ou=testing03,ou=system",
+        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing03",
+        "integerAttribute: 3", "", "dn: ou=testing04,ou=system", "objectClass: top", "objectClass: organizationalUnit",
+        "objectClass: extensibleObject", "ou: testing04", "integerAttribute: 4", "", "dn: ou=testing05,ou=system",
+        "objectClass: top", "objectClass: organizationalUnit", "objectClass: extensibleObject", "ou: testing05",
+        "integerAttribute: 5", "", "dn: ou=subtest,ou=testing01,ou=system", "objectClass: top",
+        "objectClass: organizationalUnit", "ou: subtest", "", "dn: cn=Heather Nova, ou=system", "objectClass: top",
+        "objectClass: person", "cn: Heather Nova", "sn: Nova", "telephoneNumber: 1 801 555 1212 ", "",
+        "dn: cn=with-dn, ou=system", "objectClass: top", "objectClass: person", "objectClass: organizationalPerson",
+        "objectClass: inetorgPerson", "cn: singer", "sn: manager", "telephoneNumber: 1 801 555 1212 ",
+        "manager: cn=Heather Nova, ou=system" })
 public class SearchIT extends AbstractLdapTestUnit
 {
     private static final String RDN = "cn=Heather Nova";
@@ -166,6 +108,7 @@ public class SearchIT extends AbstractLd
 
     public static LdapContext sysRoot;
 
+
     /**
      * @param sysRoot the system root to add entries to
      * @throws NamingException on errors
@@ -175,8 +118,8 @@ public class SearchIT extends AbstractLd
     {
         service.getSchemaManager().enable( "nis" );
 
-        sysRoot = getSystemContext( service ); 
-            
+        sysRoot = getSystemContext( service );
+
         /*
          * Check ou=testing00,ou=system
          */
@@ -239,7 +182,6 @@ public class SearchIT extends AbstractLd
         ctx = ( DirContext ) sysRoot.lookup( RDN );
         assertNotNull( ctx );
 
-
         // -------------------------------------------------------------------
         // Enable the nis schema
         // -------------------------------------------------------------------
@@ -248,7 +190,7 @@ public class SearchIT extends AbstractLd
         LdapContext schemaRoot = getSchemaContext( service );
         Attributes nisAttrs = schemaRoot.getAttributes( "cn=nis" );
         boolean isNisDisabled = false;
-        
+
         if ( nisAttrs.get( "m-disabled" ) != null )
         {
             isNisDisabled = ( ( String ) nisAttrs.get( "m-disabled" ).get() ).equalsIgnoreCase( "TRUE" );
@@ -258,8 +200,8 @@ public class SearchIT extends AbstractLd
         if ( isNisDisabled )
         {
             Attribute disabled = new BasicAttribute( "m-disabled" );
-            ModificationItem[] mods = new ModificationItem[] {
-                new ModificationItem( DirContext.REMOVE_ATTRIBUTE, disabled ) };
+            ModificationItem[] mods = new ModificationItem[]
+                { new ModificationItem( DirContext.REMOVE_ATTRIBUTE, disabled ) };
             schemaRoot.modifyAttributes( "cn=nis", mods );
         }
 
@@ -279,13 +221,10 @@ public class SearchIT extends AbstractLd
      */
     private static DirContext addNisPosixGroup( String name, int gid ) throws Exception
     {
-        Attributes attrs = LdifUtils.createAttributes( 
-            "objectClass: top", 
-            "objectClass: posixGroup",
-            "cn", name,
+        Attributes attrs = LdifUtils.createAttributes( "objectClass: top", "objectClass: posixGroup", "cn", name,
             "gidNumber", String.valueOf( gid ) );
-        
-        return getSystemContext( service ).createSubcontext( "cn="+name+",ou=groups", attrs );
+
+        return getSystemContext( service ).createSubcontext( "cn=" + name + ",ou=groups", attrs );
     }
 
 
@@ -295,12 +234,12 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        HashMap<String,Attributes> map = new HashMap<String,Attributes>();
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=*)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -320,12 +259,12 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
 
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=*)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -347,14 +286,15 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[]{ "1.1" } );
-        
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "1.1" } );
+
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
 
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing02)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -374,12 +314,12 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
 
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(objectClass=organ*)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -417,15 +357,15 @@ public class SearchIT extends AbstractLd
         SearchControls cons = new SearchControls();
         NamingEnumeration<SearchResult> e = sysRoot.search( "", "(bogusAttribute=abc123)", cons );
         assertNotNull( e );
-        
+
         e = sysRoot.search( "", "(!(bogusAttribute=abc123))", cons );
         assertNotNull( e );
         assertFalse( e.hasMore() );
-        
+
         e = sysRoot.search( "", "(|(bogusAttribute=abc123)(bogusAttribute=abc123))", cons );
         assertNotNull( e );
         assertFalse( e.hasMore() );
-        
+
         e = sysRoot.search( "", "(|(bogusAttribute=abc123)(ou=abc123))", cons );
         assertNotNull( e );
         assertFalse( e.hasMore() );
@@ -436,7 +376,7 @@ public class SearchIT extends AbstractLd
 
         e = sysRoot.search( "", "(objectclass=*)", cons );
         assertNotNull( e );
-        
+
         service.setAllowAnonymousAccess( oldSetAllowAnnonymousAccess );
     }
 
@@ -447,13 +387,13 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(|(ou={0})(ou={1}))", new Object[]
             { "testing00", "testing01" }, controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -472,22 +412,22 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(name=testing00)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
             map.put( result.getName(), result.getAttributes() );
         }
-        
+
         assertEquals( "size of results", 1, map.size() );
-        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) ); 
+        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) );
     }
-    
+
 
     @Test
     public void testFilterExpansion1() throws Exception
@@ -495,56 +435,60 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(name=*)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
             map.put( result.getName(), result.getAttributes() );
         }
-        
+
         assertEquals( "size of results", 23, map.size() );
-        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) ); 
-        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) ); 
-        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing01,ou=system" ) ); 
-        assertTrue( "contains ou=configuration,ou=system", map.containsKey( "ou=configuration,ou=system" ) ); 
-        assertTrue( "contains ou=groups,ou=system", map.containsKey( "ou=groups,ou=system" ) ); 
-        assertTrue( "contains ou=interceptors,ou=configuration,ou=system", map.containsKey( "ou=interceptors,ou=configuration,ou=system" ) ); 
-        assertTrue( "contains ou=partitions,ou=configuration,ou=system", map.containsKey( "ou=partitions,ou=configuration,ou=system" ) ); 
-        assertTrue( "contains ou=services,ou=configuration,ou=system", map.containsKey( "ou=services,ou=configuration,ou=system" ) ); 
-        assertTrue( "contains ou=subtest,ou=testing01,ou=system", map.containsKey( "ou=subtest,ou=testing01,ou=system" ) ); 
-        assertTrue( "contains ou=system", map.containsKey( "ou=system" ) ); 
-        assertTrue( "contains ou=users,ou=system", map.containsKey( "ou=users,ou=system" ) ); 
-        assertTrue( "contains uid=admin,ou=system", map.containsKey( "uid=admin,ou=system" ) ); 
-        assertTrue( "contains cn=administrators,ou=groups,ou=system", map.containsKey( "cn=Administrators,ou=groups,ou=system" ) ); 
+        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) );
+        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) );
+        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing01,ou=system" ) );
+        assertTrue( "contains ou=configuration,ou=system", map.containsKey( "ou=configuration,ou=system" ) );
+        assertTrue( "contains ou=groups,ou=system", map.containsKey( "ou=groups,ou=system" ) );
+        assertTrue( "contains ou=interceptors,ou=configuration,ou=system", map
+            .containsKey( "ou=interceptors,ou=configuration,ou=system" ) );
+        assertTrue( "contains ou=partitions,ou=configuration,ou=system", map
+            .containsKey( "ou=partitions,ou=configuration,ou=system" ) );
+        assertTrue( "contains ou=services,ou=configuration,ou=system", map
+            .containsKey( "ou=services,ou=configuration,ou=system" ) );
+        assertTrue( "contains ou=subtest,ou=testing01,ou=system", map.containsKey( "ou=subtest,ou=testing01,ou=system" ) );
+        assertTrue( "contains ou=system", map.containsKey( "ou=system" ) );
+        assertTrue( "contains ou=users,ou=system", map.containsKey( "ou=users,ou=system" ) );
+        assertTrue( "contains uid=admin,ou=system", map.containsKey( "uid=admin,ou=system" ) );
+        assertTrue( "contains cn=administrators,ou=groups,ou=system", map
+            .containsKey( "cn=Administrators,ou=groups,ou=system" ) );
     }
-    
-    
+
+
     @Test
     public void testFilterExpansion2() throws Exception
     {
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(|(name=testing00)(name=testing01))", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
             map.put( result.getName(), result.getAttributes() );
         }
-        
+
         assertEquals( "size of results", 2, map.size() );
-        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) ); 
-        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) ); 
+        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) );
+        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) );
     }
 
 
@@ -554,25 +498,25 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(name=testing*)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
             map.put( result.getName(), result.getAttributes() );
         }
-        
+
         assertEquals( "size of results", 6, map.size() );
-        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) ); 
-        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) ); 
-        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing02,ou=system" ) ); 
-        assertTrue( "contains ou=testing03,ou=system", map.containsKey( "ou=testing03,ou=system" ) ); 
-        assertTrue( "contains ou=testing04,ou=system", map.containsKey( "ou=testing04,ou=system" ) ); 
-        assertTrue( "contains ou=testing05,ou=system", map.containsKey( "ou=testing05,ou=system" ) ); 
+        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) );
+        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) );
+        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing02,ou=system" ) );
+        assertTrue( "contains ou=testing03,ou=system", map.containsKey( "ou=testing03,ou=system" ) );
+        assertTrue( "contains ou=testing04,ou=system", map.containsKey( "ou=testing04,ou=system" ) );
+        assertTrue( "contains ou=testing05,ou=system", map.containsKey( "ou=testing05,ou=system" ) );
     }
 
 
@@ -582,32 +526,32 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
-        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-        String filter = "(|(2.5.4.11.1=testing*)(2.5.4.54=testing*)(2.5.4.10=testing*)" +
-            "(2.5.4.6=testing*)(2.5.4.43=testing*)(2.5.4.7.1=testing*)(2.5.4.10.1=testing*)" +
-            "(2.5.4.44=testing*)(2.5.4.11=testing*)(2.5.4.4=testing*)(2.5.4.8.1=testing*)" +
-            "(2.5.4.12=testing*)(1.3.6.1.4.1.18060.0.4.1.2.3=testing*)" +
-            "(2.5.4.7=testing*)(2.5.4.3=testing*)(2.5.4.8=testing*)(2.5.4.42=testing*))";
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+        String filter = "(|(2.5.4.11.1=testing*)(2.5.4.54=testing*)(2.5.4.10=testing*)"
+            + "(2.5.4.6=testing*)(2.5.4.43=testing*)(2.5.4.7.1=testing*)(2.5.4.10.1=testing*)"
+            + "(2.5.4.44=testing*)(2.5.4.11=testing*)(2.5.4.4=testing*)(2.5.4.8.1=testing*)"
+            + "(2.5.4.12=testing*)(1.3.6.1.4.1.18060.0.4.1.2.3=testing*)"
+            + "(2.5.4.7=testing*)(2.5.4.3=testing*)(2.5.4.8=testing*)(2.5.4.42=testing*))";
         NamingEnumeration<SearchResult> list = sysRoot.search( "", filter, controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
             map.put( result.getName(), result.getAttributes() );
         }
-        
+
         assertEquals( "size of results", 6, map.size() );
-        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) ); 
-        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) ); 
-        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing02,ou=system" ) ); 
-        assertTrue( "contains ou=testing03,ou=system", map.containsKey( "ou=testing03,ou=system" ) ); 
-        assertTrue( "contains ou=testing04,ou=system", map.containsKey( "ou=testing04,ou=system" ) ); 
-        assertTrue( "contains ou=testing05,ou=system", map.containsKey( "ou=testing05,ou=system" ) ); 
+        assertTrue( "contains ou=testing00,ou=system", map.containsKey( "ou=testing00,ou=system" ) );
+        assertTrue( "contains ou=testing01,ou=system", map.containsKey( "ou=testing01,ou=system" ) );
+        assertTrue( "contains ou=testing02,ou=system", map.containsKey( "ou=testing02,ou=system" ) );
+        assertTrue( "contains ou=testing03,ou=system", map.containsKey( "ou=testing03,ou=system" ) );
+        assertTrue( "contains ou=testing04,ou=system", map.containsKey( "ou=testing04,ou=system" ) );
+        assertTrue( "contains ou=testing05,ou=system", map.containsKey( "ou=testing05,ou=system" ) );
     }
-    
+
 
     @Test
     public void testOpAttrDenormalizationOff() throws Exception
@@ -615,13 +559,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "creatorsName" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "creatorsName" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing00)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -631,8 +576,8 @@ public class SearchIT extends AbstractLd
         assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
         assertTrue( map.containsKey( "ou=testing00,ou=system" ) );
         Attributes attrs = map.get( "ou=testing00,ou=system" );
-        assertEquals( "normalized creator's name", "0.9.2342.19200300.100.1.1=admin,2.5.4.11=system", 
-            attrs.get( "creatorsName" ).get() );
+        assertEquals( "normalized creator's name", "0.9.2342.19200300.100.1.1=admin,2.5.4.11=system", attrs.get(
+            "creatorsName" ).get() );
     }
 
 
@@ -643,13 +588,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "creatorsName" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "creatorsName" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing00)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -659,11 +605,10 @@ public class SearchIT extends AbstractLd
         assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
         assertTrue( map.containsKey( "ou=testing00,ou=system" ) );
         Attributes attrs = map.get( "ou=testing00,ou=system" );
-        assertEquals( "normalized creator's name", "uid=admin,ou=system", 
-            attrs.get( "creatorsName" ).get() );
+        assertEquals( "normalized creator's name", "uid=admin,ou=system", attrs.get( "creatorsName" ).get() );
     }
 
-    
+
     /**
      * Creation of required attributes of a person entry.
      *
@@ -673,12 +618,8 @@ public class SearchIT extends AbstractLd
      */
     protected Attributes getPersonAttributes( String sn, String cn ) throws LdapException
     {
-        Attributes attributes = LdifUtils.createAttributes( 
-            "objectClass: top",
-            "objectClass: top",
-            "objectClass: person",
-            "cn", cn,
-            "sn", sn );
+        Attributes attributes = LdifUtils.createAttributes( "objectClass: top", "objectClass: top",
+            "objectClass: person", "cn", cn, "sn", sn );
 
         return attributes;
     }
@@ -687,8 +628,9 @@ public class SearchIT extends AbstractLd
     @Test
     public void testBinaryAttributesInFilter() throws Exception
     {
-        byte[] certData = new byte[] { 0x34, 0x56, 0x4e, 0x5f };
-        
+        byte[] certData = new byte[]
+            { 0x34, 0x56, 0x4e, 0x5f };
+
         // First let's add a some binary data representing a userCertificate
         Attributes attrs = getPersonAttributes( "Bush", "Kate Bush" );
         attrs.put( "userCertificate", certData );
@@ -723,13 +665,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "+" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "+" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -753,13 +696,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "*" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "*" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -783,13 +727,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "*", "creatorsName" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "*", "creatorsName" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -813,13 +758,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "1.1", "ou" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "1.1", "ou" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -843,13 +789,14 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "1.1" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "1.1" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
+
         while ( list.hasMore() )
         {
             SearchResult result = list.next();
@@ -873,13 +820,13 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         controls.setDerefLinkFlag( false );
-        controls.setReturningAttributes( new String[] { "+", "*" } );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+        controls.setReturningAttributes( new String[]
+            { "+", "*" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-        
 
         while ( list.hasMore() )
         {
@@ -966,38 +913,36 @@ public class SearchIT extends AbstractLd
 
 
     // this one is failing because it returns the admin user twice: count = 15
-//    public void testFilterExpansion3() throws Exception
-//    {
-//        SearchControls controls = new SearchControls();
-//        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-//        controls.setDerefLinkFlag( false );
-//        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES );
-//        
-//        List map = new ArrayList();
-//        NamingEnumeration list = sysRoot.search( "", "(name=*)", controls );
-//        while ( list.hasMore() )
-//        {
-//            SearchResult result = ( SearchResult ) list.next();
-//            map.add( result.getName() );
-//        }
-//        assertEquals( "size of results", 14, map.size() );
-//        assertTrue( "contains ou=testing00,ou=system", map.contains( "ou=testing00,ou=system" ) ); 
-//        assertTrue( "contains ou=testing01,ou=system", map.contains( "ou=testing01,ou=system" ) ); 
-//        assertTrue( "contains ou=testing02,ou=system", map.contains( "ou=testing01,ou=system" ) ); 
-//        assertTrue( "contains uid=akarasulu,ou=users,ou=system", map.contains( "uid=akarasulu,ou=users,ou=system" ) ); 
-//        assertTrue( "contains ou=configuration,ou=system", map.contains( "ou=configuration,ou=system" ) ); 
-//        assertTrue( "contains ou=groups,ou=system", map.contains( "ou=groups,ou=system" ) ); 
-//        assertTrue( "contains ou=interceptors,ou=configuration,ou=system", map.contains( "ou=interceptors,ou=configuration,ou=system" ) ); 
-//        assertTrue( "contains ou=partitions,ou=configuration,ou=system", map.contains( "ou=partitions,ou=configuration,ou=system" ) ); 
-//        assertTrue( "contains ou=services,ou=configuration,ou=system", map.contains( "ou=services,ou=configuration,ou=system" ) ); 
-//        assertTrue( "contains ou=subtest,ou=testing01,ou=system", map.contains( "ou=subtest,ou=testing01,ou=system" ) ); 
-//        assertTrue( "contains ou=system", map.contains( "ou=system" ) ); 
-//        assertTrue( "contains ou=users,ou=system", map.contains( "ou=users,ou=system" ) ); 
-//        assertTrue( "contains uid=admin,ou=system", map.contains( "uid=admin,ou=system" ) ); 
-//        assertTrue( "contains cn=administrators,ou=groups,ou=system", map.contains( "cn=administrators,ou=groups,ou=system" ) ); 
-//    }
-
-
+    //    public void testFilterExpansion3() throws Exception
+    //    {
+    //        SearchControls controls = new SearchControls();
+    //        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+    //        controls.setDerefLinkFlag( false );
+    //        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES );
+    //        
+    //        List map = new ArrayList();
+    //        NamingEnumeration list = sysRoot.search( "", "(name=*)", controls );
+    //        while ( list.hasMore() )
+    //        {
+    //            SearchResult result = ( SearchResult ) list.next();
+    //            map.add( result.getName() );
+    //        }
+    //        assertEquals( "size of results", 14, map.size() );
+    //        assertTrue( "contains ou=testing00,ou=system", map.contains( "ou=testing00,ou=system" ) ); 
+    //        assertTrue( "contains ou=testing01,ou=system", map.contains( "ou=testing01,ou=system" ) ); 
+    //        assertTrue( "contains ou=testing02,ou=system", map.contains( "ou=testing01,ou=system" ) ); 
+    //        assertTrue( "contains uid=akarasulu,ou=users,ou=system", map.contains( "uid=akarasulu,ou=users,ou=system" ) ); 
+    //        assertTrue( "contains ou=configuration,ou=system", map.contains( "ou=configuration,ou=system" ) ); 
+    //        assertTrue( "contains ou=groups,ou=system", map.contains( "ou=groups,ou=system" ) ); 
+    //        assertTrue( "contains ou=interceptors,ou=configuration,ou=system", map.contains( "ou=interceptors,ou=configuration,ou=system" ) ); 
+    //        assertTrue( "contains ou=partitions,ou=configuration,ou=system", map.contains( "ou=partitions,ou=configuration,ou=system" ) ); 
+    //        assertTrue( "contains ou=services,ou=configuration,ou=system", map.contains( "ou=services,ou=configuration,ou=system" ) ); 
+    //        assertTrue( "contains ou=subtest,ou=testing01,ou=system", map.contains( "ou=subtest,ou=testing01,ou=system" ) ); 
+    //        assertTrue( "contains ou=system", map.contains( "ou=system" ) ); 
+    //        assertTrue( "contains ou=users,ou=system", map.contains( "ou=users,ou=system" ) ); 
+    //        assertTrue( "contains uid=admin,ou=system", map.contains( "uid=admin,ou=system" ) ); 
+    //        assertTrue( "contains cn=administrators,ou=groups,ou=system", map.contains( "cn=administrators,ou=groups,ou=system" ) ); 
+    //    }
 
     /**
      *  Convenience method that performs a one level search using the
@@ -1018,7 +963,7 @@ public class SearchIT extends AbstractLd
         Set<String> results = new HashSet<String>();
         NamingEnumeration<SearchResult> list = getSystemContext( service ).search( "ou=groups", filter, controls );
 
-        while( list.hasMore() )
+        while ( list.hasMore() )
         {
             SearchResult result = list.next();
             results.add( result.getName() );
@@ -1057,7 +1002,7 @@ public class SearchIT extends AbstractLd
         Set<String> results = new HashSet<String>();
         NamingEnumeration<SearchResult> list = getSystemContext( service ).search( "", filter, controls );
 
-        while( list.hasMore() )
+        while ( list.hasMore() )
         {
             SearchResult result = list.next();
             results.add( result.getName() );
@@ -1066,7 +1011,7 @@ public class SearchIT extends AbstractLd
         return results;
     }
 
-    
+
     /**
      *  Convenience method that performs a one level search using the
      *  specified filter returning their DNs as Strings in a set.
@@ -1082,11 +1027,11 @@ public class SearchIT extends AbstractLd
         {
             controls = new SearchControls();
         }
-     
+
         Set<String> results = new HashSet<String>();
         NamingEnumeration<SearchResult> list = getSystemContext( service ).search( "", filter, controls );
 
-        while( list.hasMore() )
+        while ( list.hasMore() )
         {
             SearchResult result = list.next();
             results.add( result.getName() );
@@ -1224,21 +1169,17 @@ public class SearchIT extends AbstractLd
     public void testSearchWithEscapedCharsInFilter() throws Exception
     {
         // Create entry cn=Sid Vicious, ou=system
-        Attributes vicious = LdifUtils.createAttributes( 
-            "objectClass: top",
-            "objectClass: person",
-            "cn", "Sid Vicious",
-            "sn", "Vicious",
-            "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn",
+            "Sid Vicious", "sn", "Vicious", "description", "(sex*pis\\tols)" );
 
         DirContext ctx = sysRoot.createSubcontext( "cn=Sid Vicious", vicious );
         assertNotNull( ctx );
 
         ctx = ( DirContext ) sysRoot.lookup( "cn=Sid Vicious" );
         assertNotNull( ctx );
-        
+
         Attributes attributes = ctx.getAttributes( "" );
-        
+
         assertEquals( "(sex*pis\\tols)", attributes.get( "description" ).get() );
 
         // Now, search for the description
@@ -1247,9 +1188,9 @@ public class SearchIT extends AbstractLd
         controls.setDerefLinkFlag( false );
 
         controls.setReturningAttributes( new String[]
-                    { "*" } );
+            { "*" } );
         sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
-                     .getJndiValue() );
+            .getJndiValue() );
         HashMap<String, Attributes> map = new HashMap<String, Attributes>();
 
         NamingEnumeration<SearchResult> list = sysRoot
@@ -1268,18 +1209,14 @@ public class SearchIT extends AbstractLd
         assertNotNull( attrs.get( "objectClass" ) );
         assertNotNull( attrs.get( "cn" ) );
     }
-    
-    
+
+
     @Test
     public void testSubstringSearchWithEscapedCharsInFilter() throws Exception
     {
         // Create entry cn=Sid Vicious, ou=system
-        Attributes vicious = LdifUtils.createAttributes( 
-            "objectClass: top",
-            "objectClass: person",
-            "cn", "Sid Vicious",
-            "sn", "Vicious",
-            "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn",
+            "Sid Vicious", "sn", "Vicious", "description", "(sex*pis\\tols)" );
 
         DirContext ctx = sysRoot.createSubcontext( "cn=Sid Vicious", vicious );
         assertNotNull( ctx );
@@ -1326,12 +1263,8 @@ public class SearchIT extends AbstractLd
     @Test
     public void testSubstringSearchWithEscapedAsterisksInFilter_DIRSERVER_1181() throws Exception
     {
-        Attributes vicious = LdifUtils.createAttributes( 
-            "objectClass: top",
-            "objectClass: person",
-            "cn", "x*y*z*",
-            "sn", "x*y*z*",
-            "description", "(sex*pis\\tols)" );
+        Attributes vicious = LdifUtils.createAttributes( "objectClass: top", "objectClass: person", "cn", "x*y*z*",
+            "sn", "x*y*z*", "description", "(sex*pis\\tols)" );
 
         sysRoot.createSubcontext( "cn=x*y*z*", vicious );
 
@@ -1363,9 +1296,9 @@ public class SearchIT extends AbstractLd
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setDerefLinkFlag( false );
-        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-                AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-        
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
         try
         {
             sysRoot.search( "", "(|(name=testing00)(name=testing01)", controls );
@@ -1415,8 +1348,7 @@ public class SearchIT extends AbstractLd
         }
     }
     */
-    
-    
+
     /**
     * Added to test correct comparison of integer attribute types when searching.
     * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
@@ -1424,464 +1356,494 @@ public class SearchIT extends AbstractLd
     * 
     * @throws Exception
     */
-   @Test
-   public void testIntegerComparison() throws Exception {
-       Set<String> results = searchUnits("(&(objectClass=organizationalUnit)(integerAttribute<=2))",null);
-       assertTrue(results.contains("ou=testing00,ou=system"));
-       assertTrue(results.contains("ou=testing01,ou=system"));
-       assertTrue(results.contains("ou=testing02,ou=system"));
-       assertFalse(results.contains("ou=testing03,ou=system"));
-       assertFalse(results.contains("ou=testing04,ou=system"));
-       assertFalse(results.contains("ou=testing05,ou=system"));
-   }
-   
-   
-   /**
-    * Added to test correct comparison of integer attribute types when searching.
-    * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
-    * Ref. DIRSERVER-1296
-    * 
-    * @throws Exception
-    */
-   @Test
-   public void testIntegerComparison2() throws Exception {
-       Set<String> results = searchUnits("(&(objectClass=organizationalUnit)(integerAttribute>=3))",null);
-       assertFalse(results.contains("ou=testing00,ou=system"));
-       assertFalse(results.contains("ou=testing01,ou=system"));
-       assertFalse(results.contains("ou=testing02,ou=system"));
-       assertTrue(results.contains("ou=testing03,ou=system"));
-       assertTrue(results.contains("ou=testing04,ou=system"));
-       assertTrue(results.contains("ou=testing05,ou=system"));
-   }
-   
-   
-   /**
-    * Added to test correct comparison of integer attribute types when searching.
-    * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
-    * Ref. DIRSERVER-1296
-    * 
-    * @throws Exception
-    */
-   @Test
-   public void testIntegerComparison3() throws Exception {
-       Set<String> results = searchUnits("(&(objectClass=organizationalUnit)(integerAttribute<=42))",null);
-       assertTrue(results.contains("ou=testing00,ou=system"));
-       assertTrue(results.contains("ou=testing01,ou=system"));
-       assertTrue(results.contains("ou=testing02,ou=system"));
-       assertTrue(results.contains("ou=testing03,ou=system"));
-       assertTrue(results.contains("ou=testing04,ou=system"));
-       assertTrue(results.contains("ou=testing05,ou=system"));
-   }
-   
-   /**
-    * Added to test correct comparison of integer attribute types when searching.
-    * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
-    * Ref. DIRSERVER-1296
-    * 
-    * @throws Exception
-    */
-   @Test
-   public void testIntegerComparison4() throws Exception {
-       Set<String> results = searchUnits("(&(objectClass=organizationalUnit)(|(integerAttribute<=1)(integerAttribute>=5)))",null);
-       assertTrue(results.contains("ou=testing00,ou=system"));
-       assertTrue(results.contains("ou=testing01,ou=system"));
-       assertFalse(results.contains("ou=testing02,ou=system"));
-       assertFalse(results.contains("ou=testing03,ou=system"));
-       assertFalse(results.contains("ou=testing04,ou=system"));
-       assertTrue(results.contains("ou=testing05,ou=system"));
-   }
-
-
-   @Test
-   public void testSearchTelephoneNumber() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(telephoneNumber=18015551212)", controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect!", 2, map.size() );
-       assertTrue( map.containsKey( "cn=Heather Nova, ou=system" ) || map.containsKey( "cn=Heather Nova,ou=system" ) );
-   }
-
-
-   @Test
-   public void testSearchDN() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-       controls.setDerefLinkFlag( false );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-    
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(manager=cn=Heather Nova, ou=system)", controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect", 1, map.size() );
-       assertTrue( map.containsKey( "cn=with-dn, ou=system" ) || map.containsKey( "cn=with-dn,ou=system" ) );
-   }
-
-
-   @Test
-   public void testComplexFilter() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-       controls.setDerefLinkFlag( false );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-       
-       // Create an entry which does not match
-       Attributes attrs = LdifUtils.createAttributes( 
-           "objectClass: top",
-           "objectClass: groupOfUniqueNames",
-           "cn", "testGroup3",
-           "uniqueMember", "uid=admin,ou=system" );
-
-       getSystemContext( service ).createSubcontext( "cn=testGroup3,ou=groups", attrs );
-       
-       
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-       String filter = "(|(&(|(2.5.4.0=posixgroup)(2.5.4.0=groupofuniquenames)(2.5.4.0=groupofnames)(2.5.4.0=group))(!(|(2.5.4.50=uid=admin,ou=system)(2.5.4.31=0.9.2342.19200300.100.1.1=admin,2.5.4.11=system))))(objectClass=referral))";
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", filter, controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-       
-       assertEquals( "size of results", 5, map.size() );
-       assertTrue( map.containsKey( "cn=testGroup0,ou=groups,ou=system" ) ); 
-       assertTrue( map.containsKey( "cn=testGroup1,ou=groups,ou=system" ) ); 
-       assertTrue( map.containsKey( "cn=testGroup2,ou=groups,ou=system" ) ); 
-       assertTrue( map.containsKey( "cn=testGroup4,ou=groups,ou=system" ) ); 
-       assertTrue( map.containsKey( "cn=testGroup5,ou=groups,ou=system" ) ); 
-       assertFalse( map.containsKey( "cn=testGroup3,ou=groups,ou=system" ) ); 
-   }
-   
-   
-   /**
-    *  NO attributes should be returned
-    */
-   @Test
-   public void testSearchTypesOnlyAndNoAttr() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       controls.setReturningAttributes( new String[] { "1.1"  } );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-       sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true");
-       
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
-
-       Attributes attrs = map.get( "ou=testing01,ou=system" );
-
-       assertEquals( 0, attrs.size() );
-   }
-
-   
-   /**
-    * operational attributes with no values must be returned
-    */
-   @Test
-   public void testSearchTypesOnlyWithNoAttrAndOperationalAttr() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       controls.setReturningAttributes( new String[] { "1.1", "+"  } );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-       sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true");
-       
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
-
-       Attributes attrs = map.get( "ou=testing01,ou=system" );
-
-       assertNotNull( attrs.get( SchemaConstants.ENTRY_UUID_AT ) );
-       assertNotNull( attrs.get( SchemaConstants.CREATORS_NAME_AT ) );
-       
-       assertEquals( 0, attrs.get( SchemaConstants.ENTRY_UUID_AT ).size() );
-       assertEquals( 0, attrs.get( SchemaConstants.CREATORS_NAME_AT ).size() );
-   }
-
-   
-   /**
-    * all user attributes with no values must be returned
-    */
-   @Test
-   public void testSearchTypesOnlyWithNullReturnAttr() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-       sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true");
-       
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
-
-       Attributes attrs = map.get( "ou=testing01,ou=system" );
-
-       
-       assertNotNull( attrs.get( SchemaConstants.OU_AT ) );
-       assertNotNull( attrs.get( "integerAttribute" ) );
-
-       assertEquals( 0, attrs.get( SchemaConstants.OU_AT ).size() );
-       assertEquals( 0, attrs.get( "integerAttribute" ).size() );
-       
-       assertNull( attrs.get( SchemaConstants.ENTRY_UUID_AT ) );
-       assertNull( attrs.get( SchemaConstants.CREATORS_NAME_AT ) );
-   }
-
-   
-   @Test
-   public void testSearchEmptyDNWithOneLevelScope() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       
-       LdapContext nullRootCtx = getRootContext( service );
-       
-       NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=*)", controls );
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-       
-       assertEquals( 2, map.size() );
-       
-       assertTrue( map.containsKey( "ou=system" ) );
-       assertTrue( map.containsKey( "ou=schema" ) );
-   }
-   
-   
-   @Test
-   public void testSearchEmptyDNWithSubLevelScope() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-       controls.setDerefLinkFlag( false );
-       
-       LdapContext nullRootCtx = getRootContext( service );
-       
-       NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=organizationalUnit)", controls );
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertTrue( map.size() > 2 );
-
-       assertTrue( map.containsKey( "ou=system" ) );
-       assertTrue( map.containsKey( "ou=schema" ) );
-   }
-   
-   
-   @Test
-   public void testSearchEmptyDNWithObjectScopeAndNoObjectClassPresenceFilter() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.OBJECT_SCOPE );
-       controls.setDerefLinkFlag( false );
-       
-       LdapContext nullRootCtx = getRootContext( service );
-       
-       NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=domain)", controls );
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-       
-       assertEquals( 0, map.size() );
-       
-       assertFalse( map.containsKey( "ou=system" ) );
-       assertFalse( map.containsKey( "ou=schema" ) );
-   }
-   
-   
-   @Test
-   public void testSearchEmptyDNWithOneLevelScopeAndNoObjectClassPresenceFilter() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       
-       LdapContext nullRootCtx = getRootContext( service );
-       
-       NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(cn=*)", controls );
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-       
-       assertEquals( 0, map.size() );
-       
-       assertFalse( map.containsKey( "ou=system" ) );
-       assertFalse( map.containsKey( "ou=schema" ) );
-   }
-   
-   
-   @Test
-   public void testCsnLessEqualitySearch() throws Exception
-   {
-       LdapConnection connection = IntegrationUtils.getAdminConnection( service );
-
-       DN dn = new DN( "cn=testLowerCsnAdd,ou=system" );
-       Entry entry = new DefaultEntry( dn );
-       entry.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
-       entry.add( SchemaConstants.CN_AT, "testLowerCsnAdd_cn" );
-       entry.add( SchemaConstants.SN_AT, "testLowerCsnAdd_sn" );
-
-       connection.add( entry );
-
-       // add an entry to have a entry with higher CSN value
-       DN dn2 = new DN( "cn=testHigherCsnAdd,ou=system" );
-       Entry entry2 = new DefaultEntry( dn2 );
-       entry2.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
-       entry2.add( SchemaConstants.CN_AT, "testHigherCsnAdd_cn" );
-       entry2.add( SchemaConstants.SN_AT, "testHigherCsnAdd_sn" );
-
-       connection.add( entry2 );
-
-       entry = ( ( SearchResultEntry ) connection.lookup( dn.getName(), "+" ) ).getEntry();
-       entry2 = ( ( SearchResultEntry ) connection.lookup( dn2.getName(), "+" ) ).getEntry();
-       
-       String lowerCsn = entry.get( SchemaConstants.ENTRY_CSN_AT ).getString();
-       String higherCsn = entry2.get( SchemaConstants.ENTRY_CSN_AT ).getString();
-       
-       // usecases
-       // 1.1 Less than or Equal ( with the lower csn value)
-       testUseCases( lowerCsn, new String[]{lowerCsn}, connection, 1 );
-       
-       // 1.2 Less than or equals with a highest csn value
-       testUseCases( higherCsn, new String[]{higherCsn, lowerCsn}, connection, 1 );
-       
-       // 2.1 Greater than or Equal ( with the highest csn value )
-       testUseCases( higherCsn, new String[]{higherCsn}, connection, 2 );
-       
-       // 2.2 Greater than or Equal ( with lower csn value )
-       testUseCases( lowerCsn, new String[]{higherCsn, lowerCsn}, connection, 2 );
-   }
-
-
-   private void testUseCases( String filterCsnVal, String[] expectedCsns, LdapConnection connection, int useCaseNum ) throws Exception
-   {
-       Value val = new StringValue( filterCsnVal );
-
-       ExprNode filter = null;
-       
-       if( useCaseNum == 1 )
-       {
-           filter = new LessEqNode( SchemaConstants.ENTRY_CSN_AT, val );
-       }
-       else if( useCaseNum == 2 )
-       {
-           filter = new GreaterEqNode( SchemaConstants.ENTRY_CSN_AT, val );
-       }
-       
-       Entry loadedEntry = null;
-       
-       Set<String> csnSet = new HashSet<String>( expectedCsns.length );
-       Cursor<SearchResponse> cursor = connection.search( "ou=system", filter.toString(), SearchScope.ONELEVEL, "*",
-           "+" );
-       while ( cursor.next() )
-       {
-           loadedEntry = ( ( SearchResultEntry ) cursor.get() ).getEntry();
-           csnSet.add( loadedEntry.get( SchemaConstants.ENTRY_CSN_AT ).getString() );
-       }
-       cursor.close();
-
-       assertTrue( csnSet.size() >= expectedCsns.length );
-       
-       for( String csn : expectedCsns )
-       {
-           assertTrue( csnSet.contains( csn )  );
-       }
-   }
-
-
-   @Test
-   public void testSearchFilterBadAttributeType() throws Exception
-   {
-       SearchControls controls = new SearchControls();
-       controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
-       controls.setDerefLinkFlag( false );
-       sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
-               AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
-       HashMap<String, Attributes> map = new HashMap<String, Attributes>();
-
-       NamingEnumeration<SearchResult> list = sysRoot.search( "", "(|(badAttr={0})(ou={1}))", new Object[]
-           { "testing00", "testing01" }, controls );
-       
-       while ( list.hasMore() )
-       {
-           SearchResult result = list.next();
-           map.put( result.getName(), result.getAttributes() );
-       }
-
-       assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
-       assertTrue( map.containsKey( "ou=testing01,ou=system" ) );
-   }
+    @Test
+    public void testIntegerComparison() throws Exception
+    {
+        Set<String> results = searchUnits( "(&(objectClass=organizationalUnit)(integerAttribute<=2))", null );
+        assertTrue( results.contains( "ou=testing00,ou=system" ) );
+        assertTrue( results.contains( "ou=testing01,ou=system" ) );
+        assertTrue( results.contains( "ou=testing02,ou=system" ) );
+        assertFalse( results.contains( "ou=testing03,ou=system" ) );
+        assertFalse( results.contains( "ou=testing04,ou=system" ) );
+        assertFalse( results.contains( "ou=testing05,ou=system" ) );
+    }
+
+
+    /**
+     * Added to test correct comparison of integer attribute types when searching.
+     * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
+     * Ref. DIRSERVER-1296
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testIntegerComparison2() throws Exception
+    {
+        Set<String> results = searchUnits( "(&(objectClass=organizationalUnit)(integerAttribute>=3))", null );
+        assertFalse( results.contains( "ou=testing00,ou=system" ) );
+        assertFalse( results.contains( "ou=testing01,ou=system" ) );
+        assertFalse( results.contains( "ou=testing02,ou=system" ) );
+        assertTrue( results.contains( "ou=testing03,ou=system" ) );
+        assertTrue( results.contains( "ou=testing04,ou=system" ) );
+        assertTrue( results.contains( "ou=testing05,ou=system" ) );
+    }
+
+
+    /**
+     * Added to test correct comparison of integer attribute types when searching.
+     * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
+     * Ref. DIRSERVER-1296
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testIntegerComparison3() throws Exception
+    {
+        Set<String> results = searchUnits( "(&(objectClass=organizationalUnit)(integerAttribute<=42))", null );
+        assertTrue( results.contains( "ou=testing00,ou=system" ) );
+        assertTrue( results.contains( "ou=testing01,ou=system" ) );
+        assertTrue( results.contains( "ou=testing02,ou=system" ) );
+        assertTrue( results.contains( "ou=testing03,ou=system" ) );
+        assertTrue( results.contains( "ou=testing04,ou=system" ) );
+        assertTrue( results.contains( "ou=testing05,ou=system" ) );
+    }
+
+
+    /**
+     * Added to test correct comparison of integer attribute types when searching.
+     * testGreaterThanSearch and testLesserThanSearch fail to detect the problem using values less than 10.
+     * Ref. DIRSERVER-1296
+     * 
+     * @throws Exception
+     */
+    @Test
+    public void testIntegerComparison4() throws Exception
+    {
+        Set<String> results = searchUnits(
+            "(&(objectClass=organizationalUnit)(|(integerAttribute<=1)(integerAttribute>=5)))", null );
+        assertTrue( results.contains( "ou=testing00,ou=system" ) );
+        assertTrue( results.contains( "ou=testing01,ou=system" ) );
+        assertFalse( results.contains( "ou=testing02,ou=system" ) );
+        assertFalse( results.contains( "ou=testing03,ou=system" ) );
+        assertFalse( results.contains( "ou=testing04,ou=system" ) );
+        assertTrue( results.contains( "ou=testing05,ou=system" ) );
+    }
+
+
+    @Test
+    public void testSearchTelephoneNumber() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(telephoneNumber=18015551212)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 2, map.size() );
+        assertTrue( map.containsKey( "cn=Heather Nova, ou=system" ) || map.containsKey( "cn=Heather Nova,ou=system" ) );
+    }
+
+
+    @Test
+    public void testSearchDN() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+        controls.setDerefLinkFlag( false );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(manager=cn=Heather Nova, ou=system)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect", 1, map.size() );
+        assertTrue( map.containsKey( "cn=with-dn, ou=system" ) || map.containsKey( "cn=with-dn,ou=system" ) );
+    }
+
+
+    @Test
+    public void testComplexFilter() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+        controls.setDerefLinkFlag( false );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+
+        // Create an entry which does not match
+        Attributes attrs = LdifUtils.createAttributes( "objectClass: top", "objectClass: groupOfUniqueNames", "cn",
+            "testGroup3", "uniqueMember", "uid=admin,ou=system" );
+
+        getSystemContext( service ).createSubcontext( "cn=testGroup3,ou=groups", attrs );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+        String filter = "(|(&(|(2.5.4.0=posixgroup)(2.5.4.0=groupofuniquenames)(2.5.4.0=groupofnames)(2.5.4.0=group))(!(|(2.5.4.50=uid=admin,ou=system)(2.5.4.31=0.9.2342.19200300.100.1.1=admin,2.5.4.11=system))))(objectClass=referral))";
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", filter, controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "size of results", 5, map.size() );
+        assertTrue( map.containsKey( "cn=testGroup0,ou=groups,ou=system" ) );
+        assertTrue( map.containsKey( "cn=testGroup1,ou=groups,ou=system" ) );
+        assertTrue( map.containsKey( "cn=testGroup2,ou=groups,ou=system" ) );
+        assertTrue( map.containsKey( "cn=testGroup4,ou=groups,ou=system" ) );
+        assertTrue( map.containsKey( "cn=testGroup5,ou=groups,ou=system" ) );
+        assertFalse( map.containsKey( "cn=testGroup3,ou=groups,ou=system" ) );
+    }
+
+
+    /**
+     *  NO attributes should be returned
+     */
+    @Test
+    public void testSearchTypesOnlyAndNoAttr() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+        controls.setReturningAttributes( new String[]
+            { "1.1" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true" );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
+
+        Attributes attrs = map.get( "ou=testing01,ou=system" );
+
+        assertEquals( 0, attrs.size() );
+    }
+
+
+    /**
+     * operational attributes with no values must be returned
+     */
+    @Test
+    public void testSearchTypesOnlyWithNoAttrAndOperationalAttr() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+        controls.setReturningAttributes( new String[]
+            { "1.1", "+" } );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true" );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
+
+        Attributes attrs = map.get( "ou=testing01,ou=system" );
+
+        assertNotNull( attrs.get( SchemaConstants.ENTRY_UUID_AT ) );
+        assertNotNull( attrs.get( SchemaConstants.CREATORS_NAME_AT ) );
+
+        assertEquals( 0, attrs.get( SchemaConstants.ENTRY_UUID_AT ).size() );
+        assertEquals( 0, attrs.get( SchemaConstants.CREATORS_NAME_AT ).size() );
+    }
+
+
+    /**
+     * all user attributes with no values must be returned
+     */
+    @Test
+    public void testSearchTypesOnlyWithNullReturnAttr() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        sysRoot.addToEnvironment( "java.naming.ldap.typesOnly", "true" );
+
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(ou=testing01)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
+
+        Attributes attrs = map.get( "ou=testing01,ou=system" );
+
+        assertNotNull( attrs.get( SchemaConstants.OU_AT ) );
+        assertNotNull( attrs.get( "integerAttribute" ) );
+
+        assertEquals( 0, attrs.get( SchemaConstants.OU_AT ).size() );
+        assertEquals( 0, attrs.get( "integerAttribute" ).size() );
+
+        assertNull( attrs.get( SchemaConstants.ENTRY_UUID_AT ) );
+        assertNull( attrs.get( SchemaConstants.CREATORS_NAME_AT ) );
+    }
+
+
+    @Test
+    public void testSearchEmptyDNWithOneLevelScope() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+
+        LdapContext nullRootCtx = getRootContext( service );
+
+        NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=*)", controls );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( 2, map.size() );
+
+        assertTrue( map.containsKey( "ou=system" ) );
+        assertTrue( map.containsKey( "ou=schema" ) );
+    }
+
+
+    @Test
+    public void testSearchEmptyDNWithSubLevelScope() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
+        controls.setDerefLinkFlag( false );
+
+        LdapContext nullRootCtx = getRootContext( service );
+
+        NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=organizationalUnit)", controls );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertTrue( map.size() > 2 );
+
+        assertTrue( map.containsKey( "ou=system" ) );
+        assertTrue( map.containsKey( "ou=schema" ) );
+    }
+
+
+    @Test
+    public void testSearchEmptyDNWithObjectScopeAndNoObjectClassPresenceFilter() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.OBJECT_SCOPE );
+        controls.setDerefLinkFlag( false );
+
+        LdapContext nullRootCtx = getRootContext( service );
+
+        NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(objectClass=domain)", controls );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( 0, map.size() );
+
+        assertFalse( map.containsKey( "ou=system" ) );
+        assertFalse( map.containsKey( "ou=schema" ) );
+    }
+
+
+    @Test
+    public void testSearchEmptyDNWithOneLevelScopeAndNoObjectClassPresenceFilter() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+
+        LdapContext nullRootCtx = getRootContext( service );
+
+        NamingEnumeration<SearchResult> list = nullRootCtx.search( "", "(cn=*)", controls );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( 0, map.size() );
+
+        assertFalse( map.containsKey( "ou=system" ) );
+        assertFalse( map.containsKey( "ou=schema" ) );
+    }
+
+
+    @Test
+    public void testCsnLessEqualitySearch() throws Exception
+    {
+        LdapConnection connection = IntegrationUtils.getAdminConnection( service );
+
+        DN dn = new DN( "cn=testLowerCsnAdd,ou=system" );
+        Entry entry = new DefaultEntry( dn );
+        entry.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
+        entry.add( SchemaConstants.CN_AT, "testLowerCsnAdd_cn" );
+        entry.add( SchemaConstants.SN_AT, "testLowerCsnAdd_sn" );
+
+        connection.add( entry );
+
+        // add an entry to have a entry with higher CSN value
+        DN dn2 = new DN( "cn=testHigherCsnAdd,ou=system" );
+        Entry entry2 = new DefaultEntry( dn2 );
+        entry2.add( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.PERSON_OC );
+        entry2.add( SchemaConstants.CN_AT, "testHigherCsnAdd_cn" );
+        entry2.add( SchemaConstants.SN_AT, "testHigherCsnAdd_sn" );
+
+        connection.add( entry2 );
+
+        entry = ( ( SearchResultEntry ) connection.lookup( dn.getName(), "+" ) ).getEntry();
+        entry2 = ( ( SearchResultEntry ) connection.lookup( dn2.getName(), "+" ) ).getEntry();
+
+        String lowerCsn = entry.get( SchemaConstants.ENTRY_CSN_AT ).getString();
+        String higherCsn = entry2.get( SchemaConstants.ENTRY_CSN_AT ).getString();
+
+        // usecases
+        // 1.1 Less than or Equal ( with the lower csn value)
+        testUseCases( lowerCsn, new String[]
+            { lowerCsn }, connection, 1 );
+
+        // 1.2 Less than or equals with a highest csn value
+        testUseCases( higherCsn, new String[]
+            { higherCsn, lowerCsn }, connection, 1 );
+
+        // 2.1 Greater than or Equal ( with the highest csn value )
+        testUseCases( higherCsn, new String[]
+            { higherCsn }, connection, 2 );
+
+        // 2.2 Greater than or Equal ( with lower csn value )
+        testUseCases( lowerCsn, new String[]
+            { higherCsn, lowerCsn }, connection, 2 );
+    }
+
+
+    private void testUseCases( String filterCsnVal, String[] expectedCsns, LdapConnection connection, int useCaseNum )
+        throws Exception
+    {
+        Value val = new StringValue( filterCsnVal );
+
+        ExprNode filter = null;
+
+        if ( useCaseNum == 1 )
+        {
+            filter = new LessEqNode( SchemaConstants.ENTRY_CSN_AT, val );
+        }
+        else if ( useCaseNum == 2 )
+        {
+            filter = new GreaterEqNode( SchemaConstants.ENTRY_CSN_AT, val );
+        }
+
+        Entry loadedEntry = null;
+
+        Set<String> csnSet = new HashSet<String>( expectedCsns.length );
+        Cursor<SearchResponse> cursor = connection.search( "ou=system", filter.toString(), SearchScope.ONELEVEL, "*",
+            "+" );
+        while ( cursor.next() )
+        {
+            loadedEntry = ( ( SearchResultEntry ) cursor.get() ).getEntry();
+            csnSet.add( loadedEntry.get( SchemaConstants.ENTRY_CSN_AT ).getString() );
+        }
+        cursor.close();
+
+        assertTrue( csnSet.size() >= expectedCsns.length );
+
+        for ( String csn : expectedCsns )
+        {
+            assertTrue( csnSet.contains( csn ) );
+        }
+    }
+
+
+    @Test
+    public void testSearchFilterWithBadAttributeType() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(|(badAttr={0})(ou={1}))", new Object[]
+            { "testing00", "testing01" }, controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 1, map.size() );
+        assertTrue( map.containsKey( "ou=testing01,ou=system" ) );
+    }
+
+
+    @Test
+    public void testSearchFilterBadAttributeType() throws Exception
+    {
+        SearchControls controls = new SearchControls();
+        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
+        controls.setDerefLinkFlag( false );
+        sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES, AliasDerefMode.NEVER_DEREF_ALIASES
+            .getJndiValue() );
+        HashMap<String, Attributes> map = new HashMap<String, Attributes>();
+
+        NamingEnumeration<SearchResult> list = sysRoot.search( "", "(badAttr=*)", controls );
+
+        while ( list.hasMore() )
+        {
+            SearchResult result = list.next();
+            map.put( result.getName(), result.getAttributes() );
+        }
+
+        assertEquals( "Expected number of results returned was incorrect!", 0, map.size() );
+    }
 }

Modified: directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java?rev=957232&r1=957231&r2=957232&view=diff
==============================================================================
--- directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java (original)
+++ directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java Wed Jun 23 14:58:04 2010
@@ -90,6 +90,7 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.syntaxCheckers.OctetStringSyntaxChecker;
 import org.apache.directory.shared.ldap.util.Base64;
 import org.apache.directory.shared.ldap.util.DateUtils;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -1859,7 +1860,7 @@ public class SubschemaSubentryIT extends
      * @throws NamingException on error
      */
     @Test
-    // @TODO as we can't modify a schema element, the end of this test has been commented
+    @Ignore // @TODO as we can't modify a schema element, the end of this test has been commented
     public void testTimestampAndModifierUpdates() throws Exception, InterruptedException
     {
         TimeZone tz = TimeZone.getTimeZone( "GMT" );