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



Reply via email to