You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2010/07/19 00:02:35 UTC

svn commit: r965299 - in /lucene/dev/trunk/lucene: CHANGES.txt src/java/org/apache/lucene/search/TimeLimitingCollector.java

Author: uschindler
Date: Sun Jul 18 22:02:34 2010
New Revision: 965299

URL: http://svn.apache.org/viewvc?rev=965299&view=rev
Log:
LUCENE-2549: Fix TimeLimitingCollector#TimeExceededException to record the absolute docid

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TimeLimitingCollector.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=965299&r1=965298&r2=965299&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Sun Jul 18 22:02:34 2010
@@ -437,6 +437,9 @@ Bug fixes
   and float were not affected.
   (Yonik Seeley, Uwe Schindler)
 
+* LUCENE-2549: Fix TimeLimitingCollector#TimeExceededException to record
+  the absolute docid.  (Uwe Schindler)
+  
 New features
 
 * LUCENE-2128: Parallelized fetching document frequencies during weight

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TimeLimitingCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TimeLimitingCollector.java?rev=965299&r1=965298&r2=965299&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TimeLimitingCollector.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/TimeLimitingCollector.java Sun Jul 18 22:02:34 2010
@@ -111,7 +111,7 @@ public class TimeLimitingCollector exten
     public long getTimeElapsed() {
       return timeElapsed;
     }
-    /** Returns last doc that was collected when the search time exceeded. */
+    /** Returns last doc (absolute doc id) that was collected when the search time exceeded. */
     public int getLastDocCollected() {
       return lastDocCollected;
     }
@@ -129,6 +129,8 @@ public class TimeLimitingCollector exten
   private final long t0;
   private final long timeout;
   private final Collector collector;
+  
+  private int docBase;
 
   /**
    * Create a TimeLimitedCollector wrapper over another {@link Collector} with a specified timeout.
@@ -200,19 +202,20 @@ public class TimeLimitingCollector exten
     long time = TIMER_THREAD.getMilliseconds();
     if (timeout < time) {
       if (greedy) {
-        //System.out.println(this+"  greedy: before failing, collecting doc: "+doc+"  "+(time-t0));
+        //System.out.println(this+"  greedy: before failing, collecting doc: "+(docBase + doc)+"  "+(time-t0));
         collector.collect(doc);
       }
-      //System.out.println(this+"  failing on:  "+doc+"  "+(time-t0));
-      throw new TimeExceededException( timeout-t0, time-t0, doc );
+      //System.out.println(this+"  failing on:  "+(docBase + doc)+"  "+(time-t0));
+      throw new TimeExceededException( timeout-t0, time-t0, docBase + doc );
     }
-    //System.out.println(this+"  collecting: "+doc+"  "+(time-t0));
+    //System.out.println(this+"  collecting: "+(docBase + doc)+"  "+(time-t0));
     collector.collect(doc);
   }
   
   @Override
   public void setNextReader(IndexReader reader, int base) throws IOException {
     collector.setNextReader(reader, base);
+    this.docBase = base;
   }
   
   @Override