On Thu, Jan 14, 2016 at 3:55 PM, <[email protected]> wrote:

> Repository: wicket
> Updated Branches:
>   refs/heads/wicket-7.x 7e18ae98b -> b12c2f4a3
>
>
> WICKET-6076 Problem with queued components and enclosure
>
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b12c2f4a
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b12c2f4a
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b12c2f4a
>
> Branch: refs/heads/wicket-7.x
> Commit: b12c2f4a3af07df710b84df11bb359305463a2c9
> Parents: 7e18ae9
> Author: Andrea Del Bene <[email protected]>
> Authored: Thu Jan 14 15:53:08 2016 +0100
> Committer: Andrea Del Bene <[email protected]>
> Committed: Thu Jan 14 15:53:08 2016 +0100
>
> ----------------------------------------------------------------------
>  .../java/org/apache/wicket/MarkupContainer.java   |  5 ++---
>  .../wicket/queueing/ComponentQueueingTest.java    | 18 ++++++++++++++++++
>  2 files changed, 20 insertions(+), 3 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/b12c2f4a/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 34aee83..6ad949d 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
> @@ -1036,7 +1036,7 @@ public abstract class MarkupContainer extends
> Component implements Iterable<Comp
>
>


>                 // if we have a path to page dequeue any container
> children.
>                 // we can do it only if page is not already rendering!
> -               if (page != null && !page.getFlag(FLAG_RENDERING) && child
> instanceof MarkupContainer)
> +               if (page != null && child instanceof MarkupContainer)
>

The comment just above the 'if' check needs to be either removed or updated


>                 {
>                     MarkupContainer childContainer =
> (MarkupContainer)child;
>                     // if we are already dequeueing there is no need to
> dequeue again
> @@ -1979,13 +1979,12 @@ public abstract class MarkupContainer extends
> Component implements Iterable<Comp
>                 modCounter = 0;
>                 removals_clear();
>
> -               if (queue != null && !queue.isEmpty())
> +               if (queue != null && !queue.isEmpty() && hasBeenRendered())
>                 {
>                         throw new WicketRuntimeException(
>                                         String.format("Detach called on
> component with id '%s' while it had a non-empty queue: %s",
>                                                         getId(), queue));
>                 }
> -               queue = null;
>         }
>
>         private transient ComponentQueue queue;
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/b12c2f4a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
> ----------------------------------------------------------------------
> diff --git
> a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
> b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
> index 3039a27..58445bc 100644
> ---
> a/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
> +++
> b/wicket-core/src/test/java/org/apache/wicket/queueing/ComponentQueueingTest.java
> @@ -606,7 +606,25 @@ public class ComponentQueueingTest extends
> WicketTestCase
>                 tester.startPage(p);
>                 assertEquals("", tester.getLastResponseAsString());
>         }
> +
> +       /**
> +        * Test autocomponent inside not-queue region
> +        */
> +       @Test
> +       public void autosInsideNotQueueRegion()
> +       {
> +               TestPage p = new TestPage();
> +               p.setPageMarkup("<div
> wicket:id='outerContainer'><wicket:enclosure><div
> wicket:id='a'></div></wicket:enclosure></div>");
> +               Label a = new Label("a", "a");
> +               WebMarkupContainer outer;
> +               p.add(outer = new WebMarkupContainer("outerContainer"));
> +               outer.queue(a);
> +
> +               tester.startPage(p);
>
> +               assertTrue(a.getParent() instanceof Enclosure);
> +       }
> +
>         @Test
>         public void border1()
>         {
>
>

Reply via email to