mirror of https://github.com/apache/lucene.git
SOLR-6087: SolrIndexSearcher makes no DelegatingCollector.finish() call when IndexSearcher throws an expected exception. This closes #57.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1674443 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f258d2f9d4
commit
8573f64b9c
|
@ -125,6 +125,9 @@ Bug Fixes
|
|||
* SOLR-7412: Fixed range.facet.other parameter for distributed requests.
|
||||
(Will Miller, Tomás Fernándes Löbbe)
|
||||
|
||||
* SOLR-6087: SolrIndexSearcher makes no DelegatingCollector.finish() call when IndexSearcher
|
||||
throws an expected exception. (Christine Poerschke via shalin)
|
||||
|
||||
Optimizations
|
||||
----------------------
|
||||
|
||||
|
|
|
@ -68,13 +68,13 @@ import org.apache.lucene.uninverting.UninvertingReader;
|
|||
import org.apache.lucene.util.Bits;
|
||||
import org.apache.lucene.util.BytesRef;
|
||||
import org.apache.lucene.util.FixedBitSet;
|
||||
import org.apache.solr.common.SolrException.ErrorCode;
|
||||
import org.apache.solr.common.SolrException;
|
||||
import org.apache.solr.common.SolrException.ErrorCode;
|
||||
import org.apache.solr.common.params.ModifiableSolrParams;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
import org.apache.solr.common.util.SimpleOrderedMap;
|
||||
import org.apache.solr.core.DirectoryFactory.DirContext;
|
||||
import org.apache.solr.core.DirectoryFactory;
|
||||
import org.apache.solr.core.DirectoryFactory.DirContext;
|
||||
import org.apache.solr.core.SolrConfig;
|
||||
import org.apache.solr.core.SolrCore;
|
||||
import org.apache.solr.core.SolrInfoMBean;
|
||||
|
@ -198,16 +198,20 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable,SolrIn
|
|||
postFilter.setLastDelegate(collector);
|
||||
collector = postFilter;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
super.search(query, collector);
|
||||
if(collector instanceof DelegatingCollector) {
|
||||
((DelegatingCollector)collector).finish();
|
||||
}
|
||||
}
|
||||
catch( TimeLimitingCollector.TimeExceededException | ExitableDirectoryReader.ExitingReaderException x ) {
|
||||
log.warn( "Query: " + query + "; " + x.getMessage() );
|
||||
} catch (TimeLimitingCollector.TimeExceededException | ExitableDirectoryReader.ExitingReaderException x) {
|
||||
log.warn("Query: " + query + "; " + x.getMessage());
|
||||
qr.setPartialResults(true);
|
||||
} catch (EarlyTerminatingCollectorException etce) {
|
||||
if (collector instanceof DelegatingCollector) {
|
||||
((DelegatingCollector) collector).finish();
|
||||
}
|
||||
throw etce;
|
||||
}
|
||||
if (collector instanceof DelegatingCollector) {
|
||||
((DelegatingCollector) collector).finish();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue