Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-3792

NullPointerException in highlighter under certain conditions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Information Provided
    • 4.0-BETA
    • None
    • highlighter
    • None
    • Windows 7, Java 6 or 7

    Description

      Under certain conditions, there is an exception in highlighter component. The stacktrace is shown below.
      The conditions are:
      1) Add a document with a field that has empty value. E.g., with solrj api:

      document.addField ("field1", "");

      (Maybe this is not a valid value or use-case, but Solr stills allows it!!)

      2) have solr.WhitespaceTokenizerFactory as the tokenizer of the analyzer chain for that field.

      3) make sure that this field should be highlighted. In my case, I was using hl.requireFieldMatch=false, and actually I was searching on another field.

      4) Using edismax, search for a phrase, e.g., "foo bar" (including the quotation marks)

      5) The document mentioned before should be part of the search results.

      6) This exception occurs:

      INFO (SolrCore.java:1670) - [rcmCore] webapp=/solr path=/select params=

      {qf=all_text&version=2&rows=20&wt=javabin&start=0&q="foo bar"}

      hits=103 status=500 QTime=38 ERROR (SolrException.java:104) - null:java.lang.NullPointerException
      at org.apache.lucene.analysis.util.CharacterUtils$Java5CharacterUtils.fill(CharacterUtils.java:191)
      at org.apache.lucene.analysis.util.CharTokenizer.incrementToken(CharTokenizer.java:152)
      at org.apache.lucene.analysis.miscellaneous.WordDelimiterFilter.incrementToken(WordDelimiterFilter.java:209)
      at org.apache.lucene.analysis.util.FilteringTokenFilter.incrementToken(FilteringTokenFilter.java:50)
      at org.apache.lucene.analysis.miscellaneous.RemoveDuplicatesTokenFilter.incrementToken(RemoveDuplicatesTokenFilter.java:54)
      at org.apache.lucene.analysis.core.LowerCaseFilter.incrementToken(LowerCaseFilter.java:54)
      at org.apache.solr.highlight.TokenOrderingFilter.incrementToken(DefaultSolrHighlighter.java:629)
      at org.apache.lucene.analysis.CachingTokenFilter.fillCache(CachingTokenFilter.java:78)
      at org.apache.lucene.analysis.CachingTokenFilter.incrementToken(CachingTokenFilter.java:50)
      at org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:225)
      at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByHighlighter(DefaultSolrHighlighter.java:510)
      at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:401)
      at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:136)
      at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:206)
      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1656)
      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:454)
      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:275)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
      at java.lang.Thread.run(Thread.java:736)

      Attachments

        Activity

          People

            Unassigned Unassigned
            amir.yoni@gmail.com Yoni Amir
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: