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