Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0-ALPHA
-
None
-
None
Description
FacetComponent works fine on empty fields but crashes if facet.prefix parameter is set.
Looking at the code : getOrdTermsEnum(..) returns null if no value is found on the field but getCounts(...) does not checks if TermsEnum te is null or not.
UnInvertedField.java (getCounts(..))
TermsEnum te = getOrdTermsEnum(searcher.getAtomicReader()); if (prefix != null && prefix.length() > 0) { final BytesRef prefixBr = new BytesRef(prefix); 232: if (te.seekCeil(prefixBr, true) == TermsEnum.SeekStatus.END) { startTerm = numTermsInField; } else { startTerm = (int) te.ord(); } prefixBr.append(UnicodeUtil.BIG_TERM); if (te.seekCeil(prefixBr, true) == TermsEnum.SeekStatus.END) { endTerm = numTermsInField; } else { endTerm = (int) te.ord(); } }
java.lang.NullPointerException at org.apache.solr.request.UnInvertedField.getCounts(UnInvertedField.java:232) at org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:299) at org.apache.solr.request.SimpleFacets.getFacetFieldCounts(SimpleFacets.java:354) at org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:207) at org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:81)
Attachments
Issue Links
- is broken by
-
LUCENE-3003 Move UnInvertedField into Lucene core
- Closed