Author: tommaso
Date: Wed May  2 12:34:24 2018
New Revision: 1830748

URL: http://svn.apache.org/viewvc?rev=1830748&view=rev
Log:
OAK-7466 - reset weights in case of weights over/underflow

Modified:
    
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java

Modified: 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java?rev=1830748&r1=1830747&r2=1830748&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/LMSEstimator.java
 Wed May  2 12:34:24 2018
@@ -70,6 +70,11 @@ class LMSEstimator {
         for (int i = 0; i < 5; i++) {
             estimatedEntryCount += weights[i] * getInput(filter, i);
         }
+        if (Double.isInfinite(estimatedEntryCount) || 
Double.isNaN(estimatedEntryCount)) {
+            // prevent over / under flow
+            estimatedEntryCount = 1;
+            weights = new double[5];
+        }
         return Math.max(0, estimatedEntryCount);
     }
 


Reply via email to