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