Absolutely right. I will change the comment in accordance with the new code.
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()
{