[ 
https://issues.apache.org/jira/browse/SOLR-4137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13508741#comment-13508741
 ] 

Marcel edited comment on SOLR-4137 at 12/3/12 2:01 PM:
-------------------------------------------------------

Sure!

I've edited the BaseFragmentsBuilder method makeFragments on line 166 and 
following:

{code:title=BaseFragmentsBuilder.java} 
int startOffset = to.getStartOffset() - modifiedStartOffset[0] < 0 ? 0 : 
to.getStartOffset() - modifiedStartOffset[0];
int endOffset = to.getEndOffset() - modifiedStartOffset[0] > src.length()-1 ? 
src.length()-1 : to.getEndOffset() - modifiedStartOffset[0];
if (srcIndex < startOffset) {
    fragment
    .append(encoder.encodeText(src.substring(srcIndex, startOffset)))
    .append( getPreTag( preTags, subInfo.getSeqnum() ) )
    .append( encoder.encodeText( src.substring(startOffset, endOffset ) ) )
    .append( getPostTag( postTags, subInfo.getSeqnum() ) );
}
srcIndex = endOffset; 
{code} 

You can download the patched JAR [here|http://www.sendspace.com/file/bqhfb0]. 
Did not use the maven classifier - instead just a version modifier.

Did some logging before - seems like the main problem is the {{srcIndex}} being 
bigger than the {{startOffset}}. 
                
      was (Author: mschel):
    Sure!

I've edited the BaseFragmentsBuilder method makeFragments on line 166 and 
following:

{code:title=BaseFragmentsBuilder.java} 
int startOffset = to.getStartOffset() - modifiedStartOffset[0] < 0 ? 0 : 
to.getStartOffset() - modifiedStartOffset[0];
int endOffset = to.getEndOffset() - modifiedStartOffset[0] > src.length()-1 ? 
src.length()-1 : to.getEndOffset() - modifiedStartOffset[0];
if (srcIndex < startOffset) {
    fragment
    .append(encoder.encodeText(src.substring(srcIndex, startOffset)))
    .append( getPreTag( preTags, subInfo.getSeqnum() ) )
    .append( encoder.encodeText( src.substring(startOffset, endOffset ) ) )
    .append( getPostTag( postTags, subInfo.getSeqnum() ) );
}
srcIndex = endOffset; 
{code} 

You can download the patched JAR [here|http://www.sendspace.com/file/bqhfb0]. 
Did not use the maven classifier - instead just a version modifier.
                  
> FastVectorHighlighter: StringIndexOutOfBoundsException in BaseFragmentsBuilder
> ------------------------------------------------------------------------------
>
>                 Key: SOLR-4137
>                 URL: https://issues.apache.org/jira/browse/SOLR-4137
>             Project: Solr
>          Issue Type: Bug
>          Components: highlighter
>    Affects Versions: 3.6.1
>            Reporter: Marcel
>
> under some circumstances the BaseFragmentsBuilder genereates a 
> StringIndexOutOfBoundsException inside the makeFragment method.
> The starting offset is higher than the end offset.
> I did a small patch checking the offsets and posted it over there at 
> Stackoverflow: 
> http://stackoverflow.com/questions/12456448/solr-highlight-bug-with-usefastvectorhighlighter
> The code in 4.0 seems to be the same as in 3.6.1

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to