I searched of MarkupStream#hasMore usages inside Wicket Stuff, which should give a good idea of how often this method is used, and I think it's safe to apply the fix on the 1.6.x and 1.7.x branches.
Pedro Santos On Mon, Sep 5, 2016 at 2:01 AM, <[email protected]> wrote: > Repository: wicket > Updated Branches: > refs/heads/master 7da317e51 -> e3e09fd00 > > > WICKET-6165 renaming MarkupStream#hasMore to MarkupStream# > isCurrentIndexInsideTheStream > > > Project: http://git-wip-us.apache.org/repos/asf/wicket/repo > Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e3e09fd0 > Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e3e09fd0 > Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e3e09fd0 > > Branch: refs/heads/master > Commit: e3e09fd002452c8d2ea4be18f2733cffda78fc10 > Parents: 7da317e > Author: Pedro Henrique Oliveira dos Santos <[email protected]> > Authored: Mon Sep 5 02:00:29 2016 -0300 > Committer: Pedro Henrique Oliveira dos Santos <[email protected]> > Committed: Mon Sep 5 02:00:29 2016 -0300 > > ---------------------------------------------------------------------- > .../java/org/apache/wicket/MarkupContainer.java | 2 +- > .../org/apache/wicket/markup/MarkupStream.java | 18 +++++++++++++----- > .../java/org/apache/wicket/markup/TagUtils.java | 2 +- > .../html/TransparentWebMarkupContainer.java | 2 +- > .../wicket/markup/html/border/BorderBehavior.java | 6 +++--- > .../wicket/markup/html/internal/Enclosure.java | 2 +- > .../markup/resolver/WicketMessageResolver.java | 4 ++-- > 7 files changed, 22 insertions(+), 14 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java > ---------------------------------------------------------------------- > diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java > b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java > index 09705ff..6df5316 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java > +++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java > @@ -1643,7 +1643,7 @@ public abstract class MarkupContainer extends > Component implements Iterable<Comp > */ > protected final void renderAll(final MarkupStream markupStream, > final ComponentTag openTag) > { > - while (markupStream.hasMore()) > + while (markupStream.isCurrentIndexInsideTheStream()) > { > // In case of Page we need to render the whole > file. For all other components just what > // is in between the open and the close tag. > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/ > MarkupStream.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupStream.java > b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupStream.java > index 99a5165..d5d8b74 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupStream.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupStream.java > @@ -134,7 +134,7 @@ public class MarkupStream > public boolean equalTo(final MarkupStream that) > { > // While a has more markup elements > - while (hasMore()) > + while (isCurrentIndexInsideTheStream()) > { > // Get an element from each > final MarkupElement thisElement = this.get(); > @@ -163,7 +163,7 @@ public class MarkupStream > } > > // If we've run out of markup elements in b > - if (!that.hasMore()) > + if (!that.isCurrentIndexInsideTheStream()) > { > // then the two streams match perfectly > return true; > @@ -271,11 +271,19 @@ public class MarkupStream > } > > /** > + * @return True if this markup stream is moved to a MarkupElement > element > + */ > + public boolean isCurrentIndexInsideTheStream() > + { > + return currentIndex < markup.size(); > + } > + > + /** > * @return True if this markup stream has more MarkupElement > elements > */ > public boolean hasMore() > { > - return currentIndex < markup.size(); > + return currentIndex < (markup.size() - 1); > } > > /** > @@ -417,7 +425,7 @@ public class MarkupStream > */ > public boolean skipUntil(final Class<? extends MarkupElement> > clazz) > { > - while (hasMore()) > + while (isCurrentIndexInsideTheStream()) > { > if (clazz.isInstance(current)) > { > @@ -462,7 +470,7 @@ public class MarkupStream > public void skipToMatchingCloseTag(final ComponentTag openTag) > { > // Loop through the markup in this container > - while (hasMore()) > + while (isCurrentIndexInsideTheStream()) > { > // If the current markup tag closes the openTag > if (get().closes(openTag)) > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/TagUtils.java > ---------------------------------------------------------------------- > diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/TagUtils.java > b/wicket-core/src/main/java/org/apache/wicket/markup/TagUtils.java > index 9bd9433..bd0ee75 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/TagUtils.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/TagUtils.java > @@ -242,7 +242,7 @@ public class TagUtils > > MarkupStream stream = new MarkupStream(fragment); > stream.setCurrentIndex(streamOffset); > - while (stream.hasMore()) > + while (stream.isCurrentIndexInsideTheStream()) > { > MarkupElement elem = stream.get(); > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/html/ > TransparentWebMarkupContainer.java > ---------------------------------------------------------------------- > diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/ > TransparentWebMarkupContainer.java b/wicket-core/src/main/java/ > org/apache/wicket/markup/html/TransparentWebMarkupContainer.java > index f9f76de..6959914 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/ > TransparentWebMarkupContainer.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/ > TransparentWebMarkupContainer.java > @@ -133,7 +133,7 @@ public class TransparentWebMarkupContainer extends > WebMarkupContainer implements > { > MarkupStream stream = new MarkupStream(getMarkup()); > > - while (stream.hasMore()) > + while (stream.isCurrentIndexInsideTheStream()) > { > MarkupElement childOpenTag = stream.nextOpenTag(); > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/ > html/border/BorderBehavior.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/BorderBehavior.java > b/wicket-core/src/main/java/org/apache/wicket/markup/html/ > border/BorderBehavior.java > index ecb15b8..9459918 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/ > border/BorderBehavior.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/ > border/BorderBehavior.java > @@ -61,7 +61,7 @@ public class BorderBehavior extends Behavior > stream.setCurrentIndex(0); > > boolean insideBorderMarkup = false; > - while (stream.hasMore()) > + while (stream.isCurrentIndexInsideTheStream()) > { > MarkupElement elem = stream.get(); > stream.next(); > @@ -104,7 +104,7 @@ public class BorderBehavior extends Behavior > } > } > > - if (!stream.hasMore()) > + if (!stream.isCurrentIndexInsideTheStream()) > { > throw new WicketRuntimeException("Markup for > component border " + getClass().getName() + > " ended prematurely, was expecting > </wicket:border>"); > @@ -117,7 +117,7 @@ public class BorderBehavior extends Behavior > final MarkupStream stream = getMarkupStream(component); > final Response response = component.getResponse(); > > - while (stream.hasMore()) > + while (stream.isCurrentIndexInsideTheStream()) > { > MarkupElement elem = stream.get(); > stream.next(); > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/ > html/internal/Enclosure.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/Enclosure.java > b/wicket-core/src/main/java/org/apache/wicket/markup/html/ > internal/Enclosure.java > index 2d72ac0..1daa4c7 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/ > internal/Enclosure.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/ > internal/Enclosure.java > @@ -229,7 +229,7 @@ public class Enclosure extends WebMarkupContainer > implements IComponentResolver > int orgIndex = markupStream.getCurrentIndex(); > try > { > - while (markupStream.hasMore()) > + while (markupStream. > isCurrentIndexInsideTheStream()) > { > markupStream.next(); > if (markupStream.skipUntil( > ComponentTag.class)) > > http://git-wip-us.apache.org/repos/asf/wicket/blob/ > e3e09fd0/wicket-core/src/main/java/org/apache/wicket/markup/resolver/ > WicketMessageResolver.java > ---------------------------------------------------------------------- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/WicketMessageResolver.java > b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/ > WicketMessageResolver.java > index f2f99f8..bbb5643 100644 > --- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/ > WicketMessageResolver.java > +++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/ > WicketMessageResolver.java > @@ -230,7 +230,7 @@ public class WicketMessageResolver implements > IComponentResolver > log.warn("No value found for > wicket:message tag with key: {}", key); > > // If open tag was open-close > - if (markupStream.hasMore() == false) > + if (markupStream. > isCurrentIndexInsideTheStream() == false) > { > String formatedNotFound = > String.format(NOT_FOUND, key); > getResponse().write( > formatedNotFound); > @@ -358,7 +358,7 @@ public class WicketMessageResolver implements > IComponentResolver > // child component and save their tag index > if (!tag.isOpenClose()) > { > - while (markupStream.hasMore() && > !markupStream.get().closes(openTag)) > + while (markupStream. > isCurrentIndexInsideTheStream() && !markupStream.get().closes(openTag)) > { > MarkupElement element = > markupStream.get(); > > >
