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 2012/09/08 19:08:21 UTC
svn commit: r1382329 -
/directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java
Author: elecharny
Date: Sat Sep 8 17:08:21 2012
New Revision: 1382329
URL: http://svn.apache.org/viewvc?rev=1382329&view=rev
Log:
Replace the inner class by the already existing ScanCountComparator, which does not generate NPEs
Modified:
directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java
Modified: directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java?rev=1382329&r1=1382328&r2=1382329&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-mvbt/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/OrEvaluator.java Sat Sep 8 17:08:21 2012
@@ -22,11 +22,11 @@ package org.apache.directory.server.xdbm
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.search.Evaluator;
+import org.apache.directory.server.xdbm.search.impl.ScanCountComparator;
import org.apache.directory.shared.ldap.model.entry.Entry;
import org.apache.directory.shared.ldap.model.filter.ExprNode;
import org.apache.directory.shared.ldap.model.filter.OrNode;
@@ -71,33 +71,7 @@ public class OrEvaluator implements Eval
unoptimized.size() );
optimized.addAll( unoptimized );
- Collections.sort( optimized, new Comparator<Evaluator<? extends ExprNode>>()
- {
- public int compare( Evaluator<? extends ExprNode> e1,
- Evaluator<? extends ExprNode> e2 )
- {
- long scanCount1 = ( Long ) e1.getExpression().get( "count" );
- long scanCount2 = ( Long ) e2.getExpression().get( "count" );
-
- if ( scanCount1 == scanCount2 )
- {
- return 0;
- }
-
- /*
- * We want the Evaluator with the largest scan count first
- * since this node has the highest probability of accepting,
- * or rather the least probability of failing. That way we
- * can short the sub-expression evaluation process.
- */
- if ( scanCount1 < scanCount2 )
- {
- return 1;
- }
-
- return -1;
- }
- } );
+ Collections.sort( optimized, new ScanCountComparator() );
return optimized;
}