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();
>
>
>

Reply via email to