Author: thomasm
Date: Wed Mar 26 15:48:22 2014
New Revision: 1581892

URL: http://svn.apache.org/r1581892
Log:
OAK-1620 Index cost calculation integer overflow

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexLookup.java
 Wed Mar 26 15:48:22 2014
@@ -44,7 +44,7 @@ public class OrderedPropertyIndexLookup 
     /**
      * we're slightly more expensive than the standard PropertyIndex.
      */
-    private static final int COST_OVERHEAD = 3;
+    private static final double COST_OVERHEAD = 3;
     
     public OrderedPropertyIndexLookup(NodeState root) {
         super(root);

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/property/PropertyIndexLookup.java
 Wed Mar 26 15:48:22 2014
@@ -62,7 +62,7 @@ public class PropertyIndexLookup {
     /**
      * The cost overhead to use the index in number of read operations.
      */
-    private static final int COST_OVERHEAD = 2;
+    private static final double COST_OVERHEAD = 2;
     
     /**
      * The maximum cost when the index can be used.

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java?rev=1581892&r1=1581891&r2=1581892&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryImpl.java
 Wed Mar 26 15:48:22 2014
@@ -795,6 +795,9 @@ public class QueryImpl implements Query 
             if (LOG.isDebugEnabled()) {
                 LOG.debug("cost for " + index.getIndexName() + " is " + cost);
             }
+            if (cost < 0) {
+                LOG.error("cost below 0 for " + index.getIndexName() + " is " 
+ cost);
+            }
             if (cost < bestCost) {
                 bestCost = cost;
                 bestIndex = index;


Reply via email to