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 2017/06/19 14:21:46 UTC

wicket git commit: WICKET-6399 Dequeuing of Border component with nested body fails

Repository: wicket
Updated Branches:
  refs/heads/master c49b9d663 -> 13fa9f8ff


WICKET-6399 Dequeuing of Border component with nested body fails

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/13fa9f8f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/13fa9f8f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/13fa9f8f

Branch: refs/heads/master
Commit: 13fa9f8ffa9e4c8b4b76d730e0b602e1ee2ab1ed
Parents: c49b9d6
Author: Andrea Del Bene <ad...@apache.org>
Authored: Mon Jun 19 16:18:34 2017 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Mon Jun 19 16:18:34 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/wicket/MarkupContainer.java  | 14 +++++++++++++-
 .../html/TransparentWebMarkupContainer.java      |  8 ++++++++
 .../wicket/queueing/ComponentQueueingTest.java   | 19 +++++++++++++++++++
 3 files changed, 40 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/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 57ab1c9..a9ffd82 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -1963,7 +1963,7 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
 			ComponentTag tag = dequeue.takeTag();
 	
 			// see if child is already added to parent
-			Component child = get(tag.getId());
+			Component child = findChildComponent(tag);
 
 			if (child == null)
 			{
@@ -1991,6 +1991,18 @@ public abstract class MarkupContainer extends Component implements Iterable<Comp
 		}
 
 	}
+
+	/**
+	 * Search the child component for the given tag.
+	 * 
+	 * @param tag
+	 * 				the component tag 
+	 * @return the child component for the given tag or null if no child can not be found.
+	 */
+	protected Component findChildComponent(ComponentTag tag)
+	{
+		return get(tag.getId());
+	}
 	
 	/**
 	 * Propagates dequeuing to child component.

http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
index 6959914..fcbae86 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/TransparentWebMarkupContainer.java
@@ -162,4 +162,12 @@ public class TransparentWebMarkupContainer extends WebMarkupContainer implements
 			}
 		}
 	}
+	
+	@Override
+	protected Component findChildComponent(ComponentTag tag)
+	{
+		Component childComponent = super.findChildComponent(tag);
+		
+		return childComponent != null ? childComponent : resolve(this, null, tag);
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/13fa9f8f/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 fdce742..1e34590 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
@@ -26,6 +26,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
@@ -806,6 +807,24 @@ public class ComponentQueueingTest extends WicketTestCase
 		
 		tester.startPage(page);	
 	}
+	
+	@Test
+	public void queueInsideTransparentContainer() throws Exception
+	{
+		TestPage page = new TestPage();
+		page.setPageMarkup("<div wicket:id='transparentContainer'>"
+			+ "	<div wicket:id='container'>"
+			+ "		<div wicket:id='child'>"
+			+ " 	</div>"
+			+ " </div>"
+			+ "</div>");
+		
+		page.add(new TransparentWebMarkupContainer("transparentContainer"));
+		page.add(new WebMarkupContainer("container"));
+		page.queue(new WebMarkupContainer("child"));
+		
+		tester.startPage(page);	
+	}
 
 	@Test
 	public void queueNestedEnclosure()