Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 37092 invoked from network); 1 Mar 2007 19:08:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Mar 2007 19:08:45 -0000 Received: (qmail 77831 invoked by uid 500); 1 Mar 2007 19:08:53 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 77800 invoked by uid 500); 1 Mar 2007 19:08:53 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 77789 invoked by uid 99); 1 Mar 2007 19:08:53 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Mar 2007 11:08:53 -0800 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Mar 2007 11:08:44 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 0F1F81A981D; Thu, 1 Mar 2007 11:08:24 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r513442 - in /directory/apacheds/trunk: core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java Date: Thu, 01 Mar 2007 19:08:23 -0000 To: commits@directory.apache.org From: akarasulu@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070301190824.0F1F81A981D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: akarasulu Date: Thu Mar 1 11:08:22 2007 New Revision: 513442 URL: http://svn.apache.org/viewvc?view=rev&rev=513442 Log: fixing bug noted with subtree search and the negation operator Modified: directory/apacheds/trunk/core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java Modified: directory/apacheds/trunk/core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java?view=diff&rev=513442&r1=513441&r2=513442 ============================================================================== --- directory/apacheds/trunk/core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java (original) +++ directory/apacheds/trunk/core-unit/src/test/java/org/apache/directory/server/core/SearchOpsITest.java Thu Mar 1 11:08:22 2007 @@ -125,10 +125,15 @@ * Convenience method that performs a one level search using the * specified filter returning their DNs as Strings in a set. */ - public Set searchGroups( String filter ) throws NamingException + public Set searchGroups( String filter, SearchControls controls ) throws NamingException { - Set results = new HashSet(); - NamingEnumeration list = sysRoot.search( "ou=groups", filter, new SearchControls() ); + if ( controls == null ) + { + controls = new SearchControls(); + } + + Set results = new HashSet(); + NamingEnumeration list = sysRoot.search( "ou=groups", filter, controls ); while( list.hasMore() ) { SearchResult result = ( SearchResult ) list.next(); @@ -138,6 +143,16 @@ } + /** + * Convenience method that performs a one level search using the + * specified filter returning their DNs as Strings in a set. + */ + public Set searchGroups( String filter ) throws NamingException + { + return searchGroups( filter, null ); + } + + public void testSetup() throws Exception { Set results = searchGroups( "(objectClass=posixGroup)" ); @@ -313,6 +328,21 @@ public void testNotOperator() throws NamingException { Set results = searchGroups( "(!(gidNumber=4))" ); + assertTrue( results.contains( "cn=testGroup0,ou=groups,ou=system" ) ); + assertTrue( results.contains( "cn=testGroup1,ou=groups,ou=system" ) ); + assertTrue( results.contains( "cn=testGroup2,ou=groups,ou=system" ) ); + assertFalse( results.contains( "cn=testGroup3,ou=groups,ou=system" ) ); + assertFalse( results.contains( "cn=testGroup4,ou=groups,ou=system" ) ); + assertTrue( results.contains( "cn=testGroup5,ou=groups,ou=system" ) ); + } + + + public void testNotOperatorSubtree() throws NamingException + { + SearchControls controls = new SearchControls(); + controls.setSearchScope( SearchControls.SUBTREE_SCOPE ); + + Set results = searchGroups( "(!(gidNumber=4))", controls ); assertTrue( results.contains( "cn=testGroup0,ou=groups,ou=system" ) ); assertTrue( results.contains( "cn=testGroup1,ou=groups,ou=system" ) ); assertTrue( results.contains( "cn=testGroup2,ou=groups,ou=system" ) ); Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java?view=diff&rev=513442&r1=513441&r2=513442 ============================================================================== --- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java (original) +++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/ExpressionEnumerator.java Thu Mar 1 11:08:22 2007 @@ -193,8 +193,16 @@ if ( node.getChild().isLeaf() ) { LeafNode child = ( LeafNode ) node.getChild(); - idx = db.getUserIndex( child.getAttribute() ); - childEnumeration = idx.listIndices(); + + if ( db.hasUserIndexOn( child.getAttribute() ) ) + { + idx = db.getUserIndex( child.getAttribute() ); + childEnumeration = idx.listIndices(); + } + else + { + childEnumeration = db.getNdnIndex().listIndices(); + } } // Iterates over the entire set of entries else