[
https://issues.apache.org/jira/browse/WICKET-6165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pedro Santos resolved WICKET-6165.
----------------------------------
Resolution: Fixed
Fix Version/s: (was: 8.0.0)
8.0.0-M4
7.7.0
6.27.0
> Inconsistent behavior of Markupstream.hasMore vs. MarkupStream.next.
> --------------------------------------------------------------------
>
> Key: WICKET-6165
> URL: https://issues.apache.org/jira/browse/WICKET-6165
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 7.3.0
> Reporter: Thorsten Schöning
> Assignee: Pedro Santos
> Priority: Minor
> Fix For: 6.27.0, 7.7.0, 8.0.0-M4
>
> Attachments: HtmlHandler.java.patch, MarkupStream.java.patch,
> MarkupStream.java.patch
>
>
> {CODE}
> hasMore: return currentIndex < markup.size();
> next: if (++currentIndex < markup.size()) {...}
> me: while (markupStream.hasMore()) {...}
> {CODE}
> I get a null element within the while loop which I wouldn't expect to get.
> markup.size() is 73, currentIndex 72, so "hasMore" returns true, while "next"
> returns null, because it already advanced the index during its check.
> "hasMore" saying "yes" while "next" saying "no" seems inconsistent to me,
> even though one can check the return value of "next" against "null".
> Shouldn't "next" use
> {CODE}
> if (currentIndex++ < markup.size()) {...}
> {CODE}
> to be in line with "hasMore"? Or more better directly call "hasMore" for the
> check itself to have only one single consistent implementation of the check?
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)