Hello together, we've just recognized some strange behavior when using <wicket:enclosure> tag.
The scenario: I have a page that has two labels in it's component hierarchy. In the pages markup one label is surrounded with an enclosure-tag, and this label is invisible. The second label was not added to the markup. When I now render the page I would expect a WicketRuntimeException because of the broken markup but the page will be rendered successfully. I would open a ticket in jira, but I want to ensure that I'm not creating a ticket for an already known bug or expected behavior. I have a small quickstart for that: @Test(expected = WicketRuntimeException.class) // fails public void renderInvisible() throws Exception { final WicketTester tester = new WicketTester(); tester.startPage(new TestPage(false)); tester.assertRenderedPage(TestPage.class); tester.assertVisible("secondLabel"); // true } @Test(expected = WicketRuntimeException.class) // success public void renderVisible() throws Exception { final WicketTester tester = new WicketTester(); tester.startPage(new TestPage(true)); tester.assertRenderedPage(TestPage.class); } public static class TestPage extends WebPage implements IMarkupResourceStreamProvider { public TestPage(boolean labelVisible) { add(new Label("label", "invisible").setVisible(labelVisible)); add(new Label("secondLabel", "WTF?")); } @Override public IResourceStream getMarkupResourceStream(final MarkupContainer container, final Class<?> containerClass) { return new StringResourceStream("<html><body><wicket:enclosure child=\"label\"><span wicket:id=\"label\"></span></wicket:enclosure></body></html>"); } } Maybe I could contribute a patch. Do you have any idea where I can find the cause of this issue? I've just found out, that unrenderedComponents list in Page#checkRendering is empty but it must not. cheers, Martin