Lucene - Core
  1. Lucene - Core
  2. LUCENE-5032

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

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.3
    • Fix Version/s: 4.4, 6.0
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      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)
      
      1. LUCENE-5032.patch
        3 kB
        Tomás Fernández Löbbe

        Activity

        Hide
        Michael McCandless added a comment -

        Thanks Tomás!

        Show
        Michael McCandless added a comment - Thanks Tomás!
        Hide
        Steve Rowe added a comment -

        Bulk close resolved 4.4 issues

        Show
        Steve Rowe added a comment - Bulk close resolved 4.4 issues

          People

          • Assignee:
            Michael McCandless
            Reporter:
            Tomás Fernández Löbbe
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development