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/18 17:59:51 UTC

svn commit: r956033 - in /directory: apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/ apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/ apacheds/trunk/jdbm-partition/src/test/ja...

Author: elecharny
Date: Fri Jun 18 15:59:51 2010
New Revision: 956033

URL: http://svn.apache.org/viewvc?rev=956033&view=rev
Log:
o Added a test for DIRSERVER-1330
o Fixed the problem by catching the exception got if the AttribiteType does not exist in the filter

Modified:
    directory/apacheds/trunk/core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
    directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java
    directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.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=956033&r1=956032&r2=956033&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 Fri Jun 18 15:59:51 2010
@@ -1863,7 +1863,7 @@ public class SearchIT extends AbstractLd
 
 
    @Test
-   public void testSearchFilterBadAttributeType() throws Exception
+   public void testSearchFilterWithBadAttributeType() throws Exception
    {
        SearchControls controls = new SearchControls();
        controls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
@@ -1884,4 +1884,26 @@ public class SearchIT extends AbstractLd
        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/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java?rev=956033&r1=956032&r2=956033&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/FilterNormalizingVisitor.java Fri Jun 18 15:59:51 2010
@@ -26,6 +26,7 @@ import java.util.List;
 import org.apache.directory.shared.ldap.entry.StringValue;
 import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.exception.LdapException;
+import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
 import org.apache.directory.shared.ldap.filter.AndNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
@@ -167,7 +168,15 @@ public class FilterNormalizingVisitor im
      */
     private ExprNode visitPresenceNode( PresenceNode node ) throws LdapException
     {
-        node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
+        try
+        { 
+            node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
+        }
+        catch ( LdapNoSuchAttributeException lnsae )
+        {
+            return null;
+        }
+        
         return node;
     }
 
@@ -192,6 +201,16 @@ public class FilterNormalizingVisitor im
             return null;
         }
 
+        // Check that the AttributeType is valid
+        try
+        {
+            node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
+        }
+        catch ( LdapNoSuchAttributeException lnsae )
+        {
+            return null;
+        }
+
         Value<?> normalized = normalizeValue( node.getAttribute(), node.getValue() );
 
         if ( normalized == null )
@@ -199,7 +218,6 @@ public class FilterNormalizingVisitor im
             return null;
         }
 
-        node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
         node.setValue( normalized );
 
         return node;
@@ -307,7 +325,15 @@ public class FilterNormalizingVisitor im
      */
     private ExprNode visitExtensibleNode( ExtensibleNode node ) throws LdapException
     {
-        node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
+        // Check that the AttributeType is valid
+        try
+        {
+            node.setAttribute( schemaManager.getAttributeTypeRegistry().getOidByName( node.getAttribute() ) );
+        }
+        catch ( LdapNoSuchAttributeException lnsae )
+        {
+            return null;
+        }
 
         return node;
     }

Modified: directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java?rev=956033&r1=956032&r2=956033&view=diff
==============================================================================
--- directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java (original)
+++ directory/apacheds/trunk/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java Fri Jun 18 15:59:51 2010
@@ -42,7 +42,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.registries.Schema;
 import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 
@@ -53,7 +52,7 @@ import org.junit.Test;
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-@Ignore ( "Ignore this test until we get the LDIF partition in place." )
+//@Ignore ( "Ignore this test until we get the LDIF partition in place." )
 public class PartitionSchemaLoaderTest
 {
     private static SchemaManager schemaManager;

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ImmutableAttributeTypeRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ImmutableAttributeTypeRegistry.java?rev=956033&r1=956032&r2=956033&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ImmutableAttributeTypeRegistry.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ImmutableAttributeTypeRegistry.java Fri Jun 18 15:59:51 2010
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import org.apache.directory.shared.i18n.I18n;
 import org.apache.directory.shared.ldap.exception.LdapException;
+import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
 import org.apache.directory.shared.ldap.exception.LdapUnwillingToPerformException;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.schema.AttributeType;
@@ -205,7 +206,14 @@ public class ImmutableAttributeTypeRegis
      */
     public String getOidByName( String name ) throws LdapException
     {
-        return immutableAttributeTypeRegistry.getOidByName( name );
+        try
+        { 
+            return immutableAttributeTypeRegistry.getOidByName( name );
+        }
+        catch ( LdapException le )
+        {
+            throw new LdapNoSuchAttributeException( le.getMessage() );
+        }
     }