Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-5032

PostingsHighlighter throws IndexOutOfBounds exception when using multivalued fields and get to maxLength

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.3
    • 4.4, 6.0
    • None
    • None
    • New

    Description

      When using PostingsHighlighter with multi-valued fields, if the sum of the lengths of the fields is more than maxLength the highlighter throws an IndexOutOfBoundsException. I got to this error using Solr 4.3

      ERROR org.apache.solr.core.SolrCore  - java.lang.IndexOutOfBoundsException: start 0, end -1, s.length() 131
      	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:476)
      	at java.lang.StringBuilder.append(StringBuilder.java:191)
      	at org.apache.lucene.search.postingshighlight.PostingsHighlighter$LimitedStoredFieldVisitor.stringField(PostingsHighlighter.java:688)
      	at org.apache.solr.search.SolrIndexSearcher.visitFromCached(SolrIndexSearcher.java:612)
      	at org.apache.solr.search.SolrIndexSearcher.doc(SolrIndexSearcher.java:580)
      	at org.apache.lucene.search.postingshighlight.PostingsHighlighter.loadFieldValues(PostingsHighlighter.java:385)
      	at org.apache.lucene.search.postingshighlight.PostingsHighlighter.highlightFields(PostingsHighlighter.java:347)
      	at org.apache.solr.highlight.PostingsSolrHighlighter.doHighlighting(PostingsSolrHighlighter.java:172)
      	at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:139)
      	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:208)
      	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
      	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1816)
      	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:656)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:359)
      	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:155)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.eclipse.jetty.server.Server.handle(Server.java:365)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
      	at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
      	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      	at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
      	at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      	at java.lang.Thread.run(Thread.java:722)
      

      Attachments

        1. LUCENE-5032.patch
          3 kB
          Tomas Eduardo Fernandez Lobbe

        Activity

          People

            mikemccand Michael McCandless
            tflobbe Tomas Eduardo Fernandez Lobbe
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: