[
https://issues.apache.org/jira/browse/WICKET-5214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13685853#comment-13685853
]
Cedric Gatay commented on WICKET-5214:
--------------------------------------
After digging the problem seems to be in
org.apache.wicket.Page#hasInvisibleTransparentChild() the problem is that
Enclosure is a transparent container and thus sibling components are checked
only if the Enclosure is visible.
The test class revealing the problem is visible here
https://github.com/CedricGatay/wicket/commit/e3042e8b92ea81bcc6790c9a910e44f8eeb32dec
What do you others think ?
> Unrendered component wrongly ignored
> ------------------------------------
>
> Key: WICKET-5214
> URL: https://issues.apache.org/jira/browse/WICKET-5214
> Project: Wicket
> Issue Type: Bug
> Affects Versions: 6.5.0
> Reporter: Adrian Sandor
> Attachments: bug5214.zip
>
>
> When a page has a hidden enclosure, unrelated components that were not
> rendered are silently ignored (with only a debug message). Example:
> public class HomePage extends WebPage {
> public HomePage() {
> add(new Label("foo", "bar"));
> add(new WebMarkupContainer("baz").setVisible(false));
> }
> }
> Homepage.html:
> Hello <wicket:enclosure><div wicket:id="baz"></div></wicket:enclosure>
> Result: the page shows "Hello".
> If you remove ".setVisible(false)", then...
> Unexpected RuntimeException
> Last cause: The component(s) below failed to render. Possible reasons could
> be that: 1) you have added a component in code but forgot to reference it in
> the markup (thus the component will never be rendered), 2) if your components
> were added in a parent container then make sure the markup for the child
> container includes them in <wicket:extend>.
> 1. [Component id = foo]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira