<wicket:enclosure> results in MarkupException when used with multiple
<wicket:child>
------------------------------------------------------------------------------------
Key: WICKET-3512
URL: https://issues.apache.org/jira/browse/WICKET-3512
Project: Wicket
Issue Type: Bug
Affects Versions: 1.5-RC2
Reporter: Robin Shine
Put below simple pages into a Wicket web application:
TestPage1.html:
<html>
<head>
<title>title</title>
</head>
<body>
<div wicket:id="test1"></div>
<wicket:child></wicket:child>
</body>
</html>
TestPage1.java:
package com.example.test;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class TestPage1 extends WebPage {
public TestPage1() {
add(new Label("test1", "test1"));
}
}
TestPage2.html:
<wicket:extend>
<wicket:enclosure child="test2">
<div wicket:id="test2"></div>
</wicket:enclosure>
<wicket:child></wicket:child>
</wicket:extend>
TestPage2.java:
package com.example.test;
import org.apache.wicket.markup.html.basic.Label;
public class TestPage2 extends TestPage1 {
public TestPage2() {
add(new Label("test2", "test2"));
}
}
TestPage3.html:
<wicket:extend>
<wicket:enclosure child="test3">
<div wicket:id="test3"></div>
</wicket:enclosure>
</wicket:extend>
TestPage3.java:
package com.example.test;
import org.apache.wicket.markup.html.basic.Label;
public class TestPage3 extends TestPage2 {
public TestPage3() {
add(new Label("test3", "test3"));
}
}
Here TestPage3 extends TestPage2, and TestPage2 extends TestPage1. Both
TestPage2.html and TestPage3.html contains a <wicket:enclosure> tag. Now mount
TestPage3 and access it, below errors will be generated:
Message: The component [Component id = test2] was rendered already. You can
render it only once during a render phase. Class relative path:
org.apache.wicket.markup.html.basic.Label:test2
Root cause:
org.apache.wicket.markup.MarkupException: The component [Component id = test2]
was rendered already. You can render it only once during a render phase. Class
relative path: org.apache.wicket.markup.html.basic.Label:test2
at org.apache.wicket.Page.componentRendered(Page.java:299)
at org.apache.wicket.Component.rendered(Component.java:2570)
at org.apache.wicket.Component.internalRender(Component.java:2377)
at org.apache.wicket.Component.render(Component.java:2301)
at
org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1415)
...
This error won't occur if <wicket:enclosure> is removed from one of the page.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira