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()) {
