WICKET-6217 Added test case and improved code
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 e99a004..558c13f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -2014,7 +2014,8 @@
{
ChildToDequeueType childType = ChildToDequeueType.fromChild(child);
- if (childType == ChildToDequeueType.QUEUE_REGION)
+ if (childType == ChildToDequeueType.QUEUE_REGION ||
+ childType == ChildToDequeueType.BORDER)
{
((IQueueRegion)child).dequeue();
}
@@ -2022,8 +2023,7 @@
if (childType == ChildToDequeueType.MARKUP_CONTAINER)
{
// propagate dequeuing to containers
- MarkupContainer childContainer = childType == ChildToDequeueType.BORDER ?
- ((Border)child).getBodyContainer() : (MarkupContainer)child;
+ MarkupContainer childContainer = (MarkupContainer)child;
dequeue.pushContainer(childContainer);
childContainer.dequeue(dequeue);
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 68dd6a0..e889865 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
@@ -845,6 +845,30 @@
tester.startPage(page);
}
+ @Test
+ public void queueComponentInsideBorderAndEnclosure()
+ {
+ TestPage page = new TestPage();
+ page.setPageMarkup(" <div wicket:id=\"panel\"></div>");
+
+ TestPanel panel = new TestPanel("panel");
+ panel.setPanelMarkup("<wicket:panel>\n"
+ + "<div wicket:id=\"border\">\n" +
+ " <div wicket:enclosure=\"child\">\n" +
+ " <p wicket:id=\"child\">1</p>\n" +
+ " </div>\n" +
+ " </div>\n" +
+ "</wicket:panel>");
+
+ TestBorder border = new TestBorder("border");
+ border.setBorderMarkup("<wicket:border><wicket:body/></wicket:border>");
+
+ panel.add(border);
+ page.add(panel);
+ border.add(new Label("child"));
+
+ tester.startPage(page);
+ }
/**
* https://issues.apache.org/jira/browse/WICKET-6036