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