Terry Smith created LUCENE-6385:
-----------------------------------

             Summary: NullPointerException from Highlighter.getBestFragment()
                 Key: LUCENE-6385
                 URL: https://issues.apache.org/jira/browse/LUCENE-6385
             Project: Lucene - Core
          Issue Type: Bug
          Components: modules/highlighter
    Affects Versions: 5.1
            Reporter: Terry Smith


When testing against the 5.1 nightly snapshots I've come across a 
NullPointerException in highlighting when nothing would be highlighted. This 
does not happen with 5.0.

{noformat}
java.lang.NullPointerException
        at 
__randomizedtesting.SeedInfo.seed([3EDC6EB0FA552B34:9971866E394F5FD0]:0)
        at 
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extractWeightedSpanTerms(WeightedSpanTermExtractor.java:311)
        at 
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extract(WeightedSpanTermExtractor.java:151)
        at 
org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getWeightedSpanTerms(WeightedSpanTermExtractor.java:515)
        at 
org.apache.lucene.search.highlight.QueryScorer.initExtractor(QueryScorer.java:219)
        at 
org.apache.lucene.search.highlight.QueryScorer.init(QueryScorer.java:187)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:196)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestFragments(Highlighter.java:156)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestFragment(Highlighter.java:102)
        at 
org.apache.lucene.search.highlight.Highlighter.getBestFragment(Highlighter.java:80)
        at 
org.apache.lucene.search.highlight.MissesTest.testPhraseQuery(MissesTest.java:50)
{noformat}

I've written a small unit test and used git bisect to narrow the regression to 
the following commit:

{noformat}
commit 24e4eefaefb1837d1d4fa35f7669c2b264f872ac
Author: Michael McCandless <mikemcc...@apache.org>
Date:   Tue Mar 31 08:48:28 2015 +0000

    LUCENE-6308: cutover Spans to DISI, reuse ConjunctionDISI, use two-phased 
iteration
    
    git-svn-id: 
https://svn.apache.org/repos/asf/lucene/dev/branches/branch_5x@1670273 
13f79535-47bb-0310-9956-ffa450edef68
{noformat}

The problem looks quite simple, 
WeightedSpanTermExtractor.extractWeightedSpanTerms() needs an early return if 
SpanQuery.getSpans() returns null. All other callers check against this.

Unit test and fix (against the regressed commit) attached.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to