You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by "Jason Fitzharris (JIRA)" <ji...@apache.org> on 2010/05/18 17:39:47 UTC

[jira] Commented: (LUCENENET-54) ArgumentOurOfRangeException caused by SF.Snowball.Ext.DanishStemmer

    [ https://issues.apache.org/jira/browse/LUCENENET-54?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868685#action_12868685 ] 

Jason Fitzharris commented on LUCENENET-54:
-------------------------------------------

I encountered the same issue when using the Finnish stemmer. The problem is similar to LUCENENET-102 as Java and .NET defines string.substring differently. Java uses

			string.substring(firstIndex, lastIndex)

whereas .NET uses

			string.Substring(startIndex, length)

The solution is to change the line 467 in Snowballprogram.slice_to from

			s.Append(current.ToString(bra, ket));

to

			s.Append(current.ToString(bra, len));

len is an existing but unused variable which is declared as

			int len = ket - bra;


> ArgumentOurOfRangeException caused by SF.Snowball.Ext.DanishStemmer
> -------------------------------------------------------------------
>
>                 Key: LUCENENET-54
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-54
>             Project: Lucene.Net
>          Issue Type: Bug
>         Environment: Windows XP SP2, lucene.net v2.0 004
>            Reporter: Torsten Rendelmann
>            Assignee: George Aroush
>            Priority: Critical
>
> Exception Information
> System.SystemException: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: Index and length must refer to a location within the string.
> Parameter name: length
>    at System.String.Substring(Int32 startIndex, Int32 length)
>    at System.Text.StringBuilder.ToString(Int32 startIndex, Int32 length)
>    at SF.Snowball.SnowballProgram.slice_to(StringBuilder s)
>    at SF.Snowball.Ext.DanishStemmer.r_undouble()
>    at SF.Snowball.Ext.DanishStemmer.Stem()
>    --- End of inner exception stack trace ---
>    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess)
>    at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess)
>    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
>    at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
>    at System.Reflection.MethodInfo.Invoke(Object obj, Object[] parameters)
>    at Lucene.Net.Analysis.Snowball.SnowballFilter.Next()
>    at Lucene.Net.Analysis.Snowball.SnowballFilter.Next()
>    at Lucene.Net.Index.DocumentWriter.InvertDocument(Document doc)
>    at Lucene.Net.Index.DocumentWriter.AddDocument(String segment, Document doc)
>    at Lucene.Net.Index.IndexWriter.AddDocument(Document doc, Analyzer analyzer)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.