You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (JIRA)" <ji...@apache.org> on 2013/05/28 22:17:20 UTC

[jira] [Resolved] (WICKET-5209) NPE when using ComponentRenderer.renderComponent on a panel with

     [ https://issues.apache.org/jira/browse/WICKET-5209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-5209.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 7.0.0
                   6.9.0
    
> NPE when using ComponentRenderer.renderComponent on a panel with <wicket:enclosure>
> -----------------------------------------------------------------------------------
>
>                 Key: WICKET-5209
>                 URL: https://issues.apache.org/jira/browse/WICKET-5209
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.8.0
>            Reporter: GLEIZES Stephane
>            Assignee: Martin Grigorov
>             Fix For: 6.9.0, 7.0.0
>
>         Attachments: component-renderer-enclosure-test-case.tar.gz
>
>
> Hi,
> Consider this example:
> <wicket:panel>
> 	<wicket:enclosure child="externalLink">
> 		<a wicket:id="externalLink">Link</a>
> 	</wicket:enclosure>
> </wicket:panel>
> When trying to render such a panel with ComponentRenderer.renderComponent, a NPE is thrown because Wicket try to render Enclosure without initializing it.
> Root cause:
> java.lang.NullPointerException
> 	at org.apache.wicket.markup.html.internal.Enclosure.isVisible(Enclosure.java:143)
> 	at org.apache.wicket.Component.determineVisibility(Component.java:4363)
> 	at org.apache.wicket.Component.internalBeforeRender(Component.java:916)
> 	at org.apache.wicket.Component.beforeRender(Component.java:991)
> 	at org.apache.wicket.Component.internalPrepareForRender(Component.java:2214)
> 	at org.apache.wicket.Component.render(Component.java:2303)
> 	at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1390)
> 	at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1554)
> 	at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1529)
> 	at org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:689)
> 	at org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderAssociatedMarkup(AssociatedMarkupSourcingStrategy.java:76)
> 	at org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy.onComponentTagBody(PanelMarkupSourcingStrategy.java:112)
> 	at org.apache.wicket.Component.internalRenderComponent(Component.java:2549)
> 	... 29 more
> See the attached quickstart.
> I've looked a little into it, and it seems that RenderPage (used by ComponentRenderer to render components) is never initialized.
> Therefore the panel's children are never initialized too (see MarkupContainer l.930), and this causes Enclosure to have a null childComponent.
> Thanks.

--
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