[ http://issues.apache.org/jira/browse/MYFACES-586?page=all ]
Mathias Broekelmann closed MYFACES-586:
---------------------------------------
Resolution: Fixed
Thanks a lot for tracking this down!
I´ve commited a fix for this in r290681
> NPE in UIData.restoreDescendantComponentStates()
> ------------------------------------------------
>
> Key: MYFACES-586
> URL: http://issues.apache.org/jira/browse/MYFACES-586
> Project: MyFaces
> Type: Bug
> Components: Implementation
> Versions: 1.1.0
> Environment: w2k, jboss-4.0.2, tomcat55
> Reporter: Pavel Stetsuk
> Assignee: Mathias Broekelmann
>
> Error like MYFACES-520
> I have JSP like:
> <f:view>
> ...
> <h:form id="form-edit">
> ...
> <h:dataTable id="grid"
> value="#{nagrevBean.nagrevDTOs}" var="nagrevDTO"
> >
> <h:column id="flagSaveColumn"
> rendered="#{!authenticationBean.guestAuthorized}">
> <f:facet name="header">
> <h:outputText id="flagSaveColumnHeader" value="+" />
> </f:facet>
> <h:selectBooleanCheckbox id="flagSaveInput"
> value="#{nagrevDTO.flagSave}" rendered="#{nagrevDTO.canSave}" />
> </h:column>
> ....
> </h:dataTable>
> </h:form>
> </f:view>
> When a value is entered in the required inputText field, the form submits
> successfully. But in RENDER_RESPONSE phase i have error
> java.lang.NullPointerException
> at
> javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:223)
> at
> javax.faces.component.UIData.restoreDescendantComponentStates(UIData.java:235)
> at javax.faces.component.UIData.setRowIndex(UIData.java:186)
> at
> org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:135)
> at
> org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:94)
> at
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:319)
> at
> javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:343)
> at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:251)
> at
> org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
> at
> org.apache.jsp.nagrev_jsp._jspx_meth_h_dataTable_0(org.apache.jsp.nagrev_jsp:1672)
> at org.apache.jsp.nagrev_jsp._jspService(org.apache.jsp.nagrev_jsp:286)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
> at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
> at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
> at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
> at
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:95)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> com.azovstal.asctp.web.HibernateFilter.doFilter(HibernateFilter.java:35)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> at java.lang.Thread.run(Thread.java:595)
> ...
> javax.faces.FacesException: org.apache.jasper.JasperException
> at
> org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425)
> at
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:95)
> ...
> Function
> private void restoreDescendantComponentStates(Iterator childIterator,
> Object state, boolean restoreChildFacets)
> calling with state == null
> The following change to UIData seems to fix the problem:
> ...
> if (descendantStateIterator != null
> && descendantStateIterator.hasNext())
> {
> System.out.println("has dsi");
> Object[] object = (Object[]) descendantStateIterator.next();
> childState = object[0];
> descendantState = object[1];
> if (component instanceof EditableValueHolder)
> {
> ((EditableValueHolderState) childState)
> .restoreState((EditableValueHolder) component);
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira