Hello together,

we've just recognized some strange behavior when using <wicket:enclosure>

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.assertVisible("secondLabel"); // true

@Test(expected = WicketRuntimeException.class) // success
public void renderVisible() throws Exception {
    final WicketTester tester = new WicketTester();
    tester.startPage(new TestPage(true));

public static class TestPage extends WebPage implements
IMarkupResourceStreamProvider {

    public TestPage(boolean labelVisible) {
        add(new Label("label", "invisible").setVisible(labelVisible));
        add(new Label("secondLabel", "WTF?"));

    public IResourceStream getMarkupResourceStream(final MarkupContainer
container, final Class<?> containerClass) {
        return new StringResourceStream("<html><body><wicket:enclosure

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.


Reply via email to