[
https://issues.apache.org/jira/browse/LUCENE-5237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13774446#comment-13774446
]
Shai Erera commented on LUCENE-5237:
------------------------------------
let me clarify something -- if the code that's using these methods is using
them "properly", then the code works well. The bug is that it lets you delete
characters you didn't intend to. Maybe what we can do is add an assert that
{{pos + nChars < len}}, and not silently delete less chars than you asked for?
Is that better?
> StemmerUtil.deleteN may delete too many characters
> --------------------------------------------------
>
> Key: LUCENE-5237
> URL: https://issues.apache.org/jira/browse/LUCENE-5237
> Project: Lucene - Core
> Issue Type: Bug
> Components: modules/analysis
> Reporter: Shai Erera
> Assignee: Shai Erera
> Attachments: LUCENE-5237.patch
>
>
> StemmerUtil.deleteN calls to delete(), but in some cases, it may delete too
> many characters. E.g. if you execute this code:
> {code}
> char[] buf = "abcd".toCharArray();
> int len = StemmerUtil.deleteN(buf, buf.length, buf.length, 3);
> System.out.println(new String(buf, 0, len));
> {code}
> You get "a", even though no character should have been deleted (not according
> to the javadocs nor common logic).
> The problem is in delete(), which always returns {{len-1}}, even if no
> character is actually deleted.
> I'll post a patch that fixes it shortly.
--
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: [email protected]
For additional commands, e-mail: [email protected]