You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2016/01/14 15:55:34 UTC

wicket git commit: WICKET-6076 Problem with queued components and enclosure

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 <ad...@apache.org>
Authored: Thu Jan 14 15:53:08 2016 +0100
Committer: Andrea Del Bene <ad...@apache.org>
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()
 	{


Re: wicket git commit: WICKET-6076 Problem with queued components and enclosure

Posted by andrea del bene <an...@gmail.com>.

Absolutely right. I will change the comment in accordance with the new code.
> On Thu, Jan 14, 2016 at 3:55 PM, <ad...@apache.org> 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 <ad...@apache.org>
>> Authored: Thu Jan 14 15:53:08 2016 +0100
>> Committer: Andrea Del Bene <ad...@apache.org>
>> 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()
>>          {
>>
>>


Re: wicket git commit: WICKET-6076 Problem with queued components and enclosure

Posted by Martin Grigorov <mg...@apache.org>.
On Thu, Jan 14, 2016 at 3:55 PM, <ad...@apache.org> 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 <ad...@apache.org>
> Authored: Thu Jan 14 15:53:08 2016 +0100
> Committer: Andrea Del Bene <ad...@apache.org>
> 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()
>         {
>
>