[
https://issues.apache.org/jira/browse/MYFACES-2991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jakob Korherr resolved MYFACES-2991.
------------------------------------
Resolution: Fixed
Fix Version/s: 2.0.3-SNAPSHOT
> NPE from rendering button with missing resource URL
> ---------------------------------------------------
>
> Key: MYFACES-2991
> URL: https://issues.apache.org/jira/browse/MYFACES-2991
> Project: MyFaces Core
> Issue Type: Bug
> Components: General
> Affects Versions: 2.0.3-SNAPSHOT
> Reporter: David Jencks
> Assignee: Jakob Korherr
> Fix For: 2.0.3-SNAPSHOT
>
> Attachments: MYFACES-2991.patch
>
>
> I ran into this with the tck in geronimo. The test appears to be trying to
> render a button that is just created and not part of a view to test the EL
> bits of encodeBegin. There's no resource info associated with this button so
> the resource URL is null, and trying to encode it throws an NPE. Some
> comments in the code seem to indicate that something else should be
> happening. In any case this can be fixed by testing for a null resourceURL
> and not trying to encode null.
> Code involved and comments that make be wonder what should be happening are in
> HtmlOutcomeTargetButtonRendererBase line 115:
> String href = facesContext.getExternalContext().encodeResourceURL(
> HtmlRendererUtils.getOutcomeTargetLinkHref(facesContext,
> (UIOutcomeTarget) uiComponent));
> ServletExternalContextImpl line 325:
> @Override
> public String encodeResourceURL(final String url)
> {
> checkNull(url, "url");
> checkHttpServletRequest();
> return ((HttpServletResponse) _servletResponse).encodeURL(url);
> }
> HtmlRendererUtils line 1771:
> public static String getOutcomeTargetLinkHref(
> FacesContext facesContext, UIOutcomeTarget component) throws
> IOException {
> ...
> // when navigation case is null, force the "link" to be rendered as
> text
> if (navigationCase == null) {
> return null;
> }
> ...
> Result appears to be that when there is no navigation case the first method
> will throw an NPE, although the comment in getOutcomeTargetLinkHref seems to
> indicate something else should happen.
> I haven't yet figured out how to add an appropriate renderer to the mock
> renderkit to write a unit test showing the problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.