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

Bruno P. Kinoshita edited comment on LANG-1281 at 11/3/16 10:10 PM:
--------------------------------------------------------------------

I had voted +1 for the pull request, but then read the Javadoc again, and now 
I'm not sure about it :-)

>"The code increments the starting index by one, rather than by the length of 
>the match string, so matches may overlap."

I'm not sure if there's anything wrong with the above statement for 
StringUtils#ordinalOf.

> But the implementation of the method does NOT increment by 1 if given the 
> empty string. So this change causes the documentation to contradict the 
> implementation.

Given the empty string, as far as I can tell, the implementation returns (as in 
the doc) "the n-th index of the search CharSequence", which is 0. It never 
increments the starting index (which is done here 
https://github.com/apache/commons-lang/blob/ff4497aff8cc9de4e0b2c6e5e23e5b6550f76f29/src/main/java/org/apache/commons/lang3/StringUtils.java#L1477).

As it was given an empty string, this check in ordinalOf method returns the 
empty string: 
https://github.com/apache/commons-lang/blob/ff4497aff8cc9de4e0b2c6e5e23e5b6550f76f29/src/main/java/org/apache/commons/lang3/StringUtils.java#L1466


was (Author: kinow):
I had voted +1 for the pull request, but then read the Javadoc again, and now 
I'm not sure about it :-)

>"The code increments the starting index by one, rather than by the length of 
>the match string, so matches may overlap."

I'm not sure if there's anything wrong with the above statement for 
StringUtils#ordinalOf.

> But the implementation of the method does NOT increment by 1 if given the 
> empty string. So this change causes the documentation to contradict the 
> implementation.

Given the empty string, as far as I can tell, the implementation returns (as in 
the doc) "the n-th index of the search CharSequence", which is 0. It never 
increments the starting index (which is done here 
https://github.com/apache/commons-lang/blob/ff4497aff8cc9de4e0b2c6e5e23e5b6550f76f29/src/main/java/org/apache/commons/lang3/StringUtils.java#L1477).

> Javadoc of StringUtils.ordinalIndexOf is contradictory.
> -------------------------------------------------------
>
>                 Key: LANG-1281
>                 URL: https://issues.apache.org/jira/browse/LANG-1281
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>    Affects Versions: 3.5
>            Reporter: Andreas Lundblad
>            Priority: Minor
>
> Javadoc of StringUtils.ordinalIndexOf states the following:
> "The code increments the starting index by one, rather than by the length of 
> the match string, so matches may overlap."
> But then gives the following example:
> StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0
> which clearly indicates that it does *not* increment the starting index by 
> one in case of the empty string.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to