Skip to content

Commit

Permalink
Fixed NPE if matched parent docs is higher than short_circuit_cutoff.
Browse files Browse the repository at this point in the history
Closes #4135
  • Loading branch information
martijnvg committed Nov 11, 2013
1 parent f5b7f5a commit a3afafc
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public ParentWeight(Filter parentFilter, Filter shortCircuitFilter, SearchContex
if (applyAcceptedDocs) {
// In case filters are cached, we need to apply deletes, since filters from filter cache didn't apply deletes
this.parentFilter = new ApplyAcceptedDocsFilter(parentFilter);
this.shortCircuitFilter = new ApplyAcceptedDocsFilter(shortCircuitFilter);
this.shortCircuitFilter = shortCircuitFilter != null ? new ApplyAcceptedDocsFilter(shortCircuitFilter) : null;
} else {
this.parentFilter = parentFilter;
this.shortCircuitFilter = shortCircuitFilter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@
import org.elasticsearch.common.lucene.search.function.CombineFunction;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.index.mapper.MergeMappingException;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.*;
import org.elasticsearch.search.facet.terms.TermsFacet;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
Expand Down Expand Up @@ -64,7 +63,6 @@ public class SimpleChildQuerySearchTests extends ElasticsearchIntegrationTest {

@Test
public void multiLevelChild() throws Exception {

client().admin().indices().prepareCreate("test")
.setSettings(ImmutableSettings.settingsBuilder().put("index.number_of_shards", 1).put("index.number_of_replicas", 0))
.execute().actionGet();
Expand Down Expand Up @@ -1952,4 +1950,22 @@ public void run() {
}
}

private static HasChildFilterBuilder hasChildFilter(String type, QueryBuilder queryBuilder) {
HasChildFilterBuilder hasChildFilterBuilder = FilterBuilders.hasChildFilter(type, queryBuilder);
hasChildFilterBuilder.setShortCircuitCutoff(randomInt(10));
return hasChildFilterBuilder;
}

private static HasChildFilterBuilder hasChildFilter(String type, FilterBuilder filterBuilder) {
HasChildFilterBuilder hasChildFilterBuilder = FilterBuilders.hasChildFilter(type, filterBuilder);
hasChildFilterBuilder.setShortCircuitCutoff(randomInt(10));
return hasChildFilterBuilder;
}

private static HasChildQueryBuilder hasChildQuery(String type, QueryBuilder queryBuilder) {
HasChildQueryBuilder hasChildQueryBuilder = QueryBuilders.hasChildQuery(type, queryBuilder);
hasChildQueryBuilder.setShortCircuitCutoff(randomInt(10));
return hasChildQueryBuilder;
}

}

0 comments on commit a3afafc

Please sign in to comment.