/** Copies SolrReaderInfo instances from the source to this SolrIndexReader */ public void associateInfo(SolrIndexReader source) { // seemed safer to not mess with reopen() but simply set // one set of caches from another reader tree. HashMap<IndexReader, SolrReaderInfo> map = new HashMap<IndexReader, SolrReaderInfo>(); buildInfoMap(source, map); setInfo(this, map); }
private static void setInfo(SolrIndexReader target, HashMap<IndexReader, SolrReaderInfo> map) { SolrReaderInfo info = map.get(target.getWrappedReader()); if (info == null) info = new SolrReaderInfo(target.getWrappedReader()); target.info = info; SolrIndexReader[] readers = target.getSequentialSubReaders(); if (readers == null) return; for (SolrIndexReader r : readers) { setInfo(r, map); } }