[
https://issues.apache.org/jira/browse/MYFACES-4074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15624059#comment-15624059
]
Leonardo Uribe commented on MYFACES-4074:
-----------------------------------------
Thanks for the example, it helps to debug it properly. According to the tests,
the exception does not happen inside MyFaces, and it is related to primefaces
p:dataGrid component, which overrides UIData. There is nothing to do in that
case from myfaces perspective, because the fix should be done in primefaces.
I'll close this issue as invalid.
> MyFaces + Primefaces: Dynamic ui:include + UIData (with rowStatePreserved)
> rendering problem
> --------------------------------------------------------------------------------------------
>
> Key: MYFACES-4074
> URL: https://issues.apache.org/jira/browse/MYFACES-4074
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-314
> Affects Versions: 2.2.11
> Reporter: Jiri Slovak
>
> There is a situation where UIData with rowStatePreserved is not rendered.
> NullPointer exception is thrown in this case.
> The example of such situation is:
> we have index.xhtml with ui:include with src attribute as expression
> <h:form>
> <h:panelGrid columns="1" bodyrows="3">
> <p:commandLink
> action="#{mainFrameBean.setMenu('iframe1.xhtml')}" process="@this"
> update=":mainframe">Frame 1</p:commandLink>
> <p:commandLink
> action="#{mainFrameBean.setMenu('iframe2.xhtml')}" process="@this"
> update=":mainframe">Frame 2</p:commandLink>
> <p:commandLink
> action="#{mainFrameBean.setMenu('iframe3.xhtml')}" process="@this"
> update=":mainframe">Frame 3</p:commandLink>
> </h:panelGrid>
> </h:form>
> <p:outputPanel id="mainframe">
> <ui:include src="/frames/#{mainFrameBean.menuValue}" />
> </p:outputPanel>
> we have datagrid coded in iframe2.xhtml
> <p:dataGrid var="car" value="#{dataGridView.cars}" columns="3" layout="grid"
> rows="12" paginator="true" id="cars" rowStatePreserved="true"
> paginatorTemplate="{CurrentPageReport} {FirstPageLink}
> {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}
> {RowsPerPageDropdown}"
> rowsPerPageTemplate="6,12,16">
> <f:facet name="header">
> Cars for Sale
> </f:facet>
> <p:panel header="#{car.id}" style="text-align:center">
> <h:outputText value="#{car.year}" />
> </p:panel>
> </p:dataGrid>
> Then if you click "Frame 2" commandlink you get nullpointer returned in the
> partial response XML.
> The problem is UIData incorrectly handles initial descendant state during the
> render response phase.
> I`ve prepared testapp code in github as an exapmle:
> https://github.com/slovi/myfaces_primefaces_uidata_issue
> (link 4 does not work correctly with myfaces, but works well with Mojarra).
> It seems the problem is that MyFaces sets initial state during the render
> response phase (in case of partial request), whilst Mojarra sets
> markInitialState during the build phase.
> Jiri
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)