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 2009/05/03 00:19:13 UTC
svn commit: r770988 - in /directory/apacheds/trunk:
core-integ/src/test/java/org/apache/directory/server/core/operations/search/SearchIT.java
core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java
Author: elecharny
Date: Sat May 2 22:19:13 2009
New Revision: 770988
URL: http://svn.apache.org/viewvc?rev=770988&view=rev
Log:
Another fix for DIRSERVER-1333. The first two fixes were not enough.
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/NormalizingVisitor.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=770988&r1=770987&r2=770988&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 Sat May 2 22:19:13 2009
@@ -1709,6 +1709,14 @@
sysRoot.addToEnvironment( JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES,
AliasDerefMode.NEVER_DEREF_ALIASES.getJndiValue() );
+ // Create an entry which does not match
+ Attributes attrs = new BasicAttributes( "objectClass", "top", true );
+ attrs.get( "objectClass" ).add( "groupOfUniqueNames" );
+ attrs.put( "cn", "testGroup3" );
+ attrs.put( "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 );
@@ -1719,7 +1727,12 @@
map.put( result.getName(), result.getAttributes() );
}
- assertEquals( "size of results", 1, map.size() );
- assertTrue( "contains cn=Administrators,ou=groups,ou=system", map.containsKey( "cn=Administrators,ou=groups,ou=system" ) );
+ 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" ) );
}
}
Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java?rev=770988&r1=770987&r2=770988&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java Sat May 2 22:19:13 2009
@@ -387,9 +387,16 @@
ExprNode result = ( ExprNode ) visit( child );
- if ( ( result == null ) || ( result instanceof BranchNode ) )
+ if ( result == null )
{
- return result;
+ return null;
+ }
+ else if ( result instanceof BranchNode )
+ {
+ List<ExprNode> newChildren = new ArrayList<ExprNode>( 1 );
+ newChildren.add( result );
+ node.setChildren( newChildren );
+ return node;
}
else if ( result instanceof LeafNode )
{