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