Updated Branches:
  refs/heads/master c9c875c09 -> 878381ed6

Fixed issue with the warmup because the indexreader was wrapped with the 
exitablereader.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/878381ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/878381ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/878381ed

Branch: refs/heads/master
Commit: 878381ed67e3c101bf199bcf89d675194c132e8b
Parents: c9c875c
Author: Aaron McCurry <[email protected]>
Authored: Fri Jun 21 23:24:11 2013 -0400
Committer: Aaron McCurry <[email protected]>
Committed: Fri Jun 21 23:24:11 2013 -0400

----------------------------------------------------------------------
 .../manager/indexserver/DefaultBlurIndexWarmup.java | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/878381ed/blur-core/src/main/java/org/apache/blur/manager/indexserver/DefaultBlurIndexWarmup.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/main/java/org/apache/blur/manager/indexserver/DefaultBlurIndexWarmup.java
 
b/blur-core/src/main/java/org/apache/blur/manager/indexserver/DefaultBlurIndexWarmup.java
index cf8d1c8..2373a6f 100644
--- 
a/blur-core/src/main/java/org/apache/blur/manager/indexserver/DefaultBlurIndexWarmup.java
+++ 
b/blur-core/src/main/java/org/apache/blur/manager/indexserver/DefaultBlurIndexWarmup.java
@@ -17,6 +17,7 @@ package org.apache.blur.manager.indexserver;
  * limitations under the License.
  */
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -32,6 +33,7 @@ import org.apache.blur.thrift.generated.ColumnPreCache;
 import org.apache.blur.thrift.generated.TableDescriptor;
 import org.apache.lucene.index.AtomicReader;
 import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.FilterDirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexReaderContext;
 import org.apache.lucene.index.SegmentReader;
@@ -45,6 +47,9 @@ public class DefaultBlurIndexWarmup extends BlurIndexWarmup {
       AtomicBoolean isClosed, ReleaseReader releaseReader) throws IOException {
     LOG.info("Running warmup for reader [{0}]", reader);
     try {
+      if (reader instanceof FilterDirectoryReader) {
+        reader = getBase((FilterDirectoryReader) reader);
+      }
       int maxSampleSize = 1000;
       IndexWarmup indexWarmup = new IndexWarmup(isClosed, maxSampleSize);
       String context = table.getName() + "/" + shard;
@@ -60,6 +65,17 @@ public class DefaultBlurIndexWarmup extends BlurIndexWarmup {
     }
   }
 
+  private IndexReader getBase(FilterDirectoryReader reader) {
+    try {
+      Field field = FilterDirectoryReader.class.getDeclaredField("in");
+      field.setAccessible(true);
+      return (IndexReader) field.get(reader);
+    } catch (Exception e) {
+      LOG.error("Unknown error trying to get base reader from [{0}]",e,reader);
+      return reader;
+    }
+  }
+
   private Iterable<String> getFields(IndexReader reader) throws IOException {
     Set<String> fields = new TreeSet<String>();
     for (IndexReaderContext ctext : reader.getContext().leaves()) {

Reply via email to