[ 
http://issues.apache.org/jira/browse/MYFACES-331?page=comments#action_12316133 
] 

Mike Kienenberger commented on MYFACES-331:
-------------------------------------------

I understand what you've done now and why it breaks my code.

However, I can't really comment on it further because the latest changes have 
also broken the initialization of my component, so I never get to the 
save/restore issue.

If you run my example code, you'll see that the UIColumns column headers are 
all there, but none of the checkboxes in the UIColumns component.

When my data model tag is initialized, I assign a value binding to my 
UIColumn's UISelectBoolean.
However, before it can be rendered, UIColumn's setRowIndex method "restores" 
null back to my value binding.  This is happening when HtmlTableRenderer's 
renderColumnChildHeaderOrFooterRow is called.   As far as I know, this is also 
before any state was ever saved for UIColumns' children.

This means you can no longer programmically assign value bindings to a child of 
UIColumns, if I understand what's happening correctly, because they'll be 
erased during rendering.

============STACK TRACE OF INITIALIZATION===========================
Thread [SocketListener0-1] (Suspended (breakpoint at line 248 in 
jsf.component.RowAndColumnRelationshipsHtmlDataTable))
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable.initializeDataModels() 
line: 248
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable.setRowAndColumnRelationshipDataValueBindingString(java.lang.String)
 line: 205
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag.setProperties(javax.faces.component.UIComponent)
 line: 43
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag(javax.faces.webapp.UIComponentTag).findComponent(javax.faces.context.FacesContext)
 line: 392
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag(javax.faces.webapp.UIComponentTag).doStartTag()
 line: 219
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_example_rowAndColumnRelationshipsHtmlDataTable_0(javax.servlet.jsp.tagext.JspTag,
 javax.servlet.jsp.PageContext) line: 32
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_h_form_0(javax.servlet.jsp.tagext.JspTag,
 javax.servlet.jsp.PageContext) line: not available
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_f_view_0(javax.servlet.jsp.PageContext)
 line: 16
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspService(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: not available
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx(org.apache.jasper.runtime.HttpJspBase).service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: 94
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest,
 javax.servlet.ServletResponse) line: 689
        
org.apache.jasper.servlet.JspServletWrapper.service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse, boolean) line: 324
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, 
boolean) line: 292
        
org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: 236
        
org.apache.jasper.servlet.JspServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest,
 javax.servlet.ServletResponse) line: 689
        
org.mortbay.jetty.servlet.ServletHolder.handle(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 427
        
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(java.lang.String, 
javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, 
org.mortbay.jetty.servlet.ServletHolder, int) line: 475
        
org.mortbay.jetty.servlet.Dispatcher.dispatch(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse, int) line: 275
        
org.mortbay.jetty.servlet.Dispatcher.forward(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 169
        
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(java.lang.String)
 line: 415
        
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(javax.faces.context.FacesContext,
 javax.faces.component.UIViewRoot) line: 226
        
org.apache.myfaces.lifecycle.LifecycleImpl.render(javax.faces.context.FacesContext)
 line: 299
        javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 95
=======================================


=================STACK TRACE OF RESTORE-TO-NULL BEHAVIOR======================
Thread [SocketListener0-1] (Suspended (breakpoint at line 753 in 
javax.faces.component.UIComponentBase))
        
javax.faces.component.UISelectBoolean(javax.faces.component.UIComponentBase).restoreValueBindingMap(javax.faces.context.FacesContext,
 java.lang.Object) line: 753
        
javax.faces.component.UISelectBoolean(javax.faces.component.UIComponentBase).restoreState(javax.faces.context.FacesContext,
 java.lang.Object) line: 695
        
javax.faces.component.UISelectBoolean(javax.faces.component.UIOutput).restoreState(javax.faces.context.FacesContext,
 java.lang.Object) line: 91
        
javax.faces.component.UISelectBoolean(javax.faces.component.UIInput).restoreState(javax.faces.context.FacesContext,
 java.lang.Object) line: 384
        
javax.faces.component.UISelectBoolean(javax.faces.component.UIComponentBase).processRestoreState(javax.faces.context.FacesContext,
 java.lang.Object) line: 508
        
org.apache.myfaces.custom.crosstable.UIColumns(javax.faces.component.UIComponentBase).processRestoreState(javax.faces.context.FacesContext,
 java.lang.Object) line: 499
        org.apache.myfaces.custom.crosstable.UIColumns.setRowIndex(int) line: 
171
        
org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.renderColumnChildHeaderOrFooterRow(javax.faces.context.FacesContext,
 javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, 
java.lang.String, boolean) line: 82
        
org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer(org.apache.myfaces.renderkit.html.HtmlTableRendererBase).renderColumnHeaderOrFooterRow(javax.faces.context.FacesContext,
 javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, 
java.lang.String, boolean) line: 449
        
org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer(org.apache.myfaces.renderkit.html.HtmlTableRendererBase).renderColumnHeaderRow(javax.faces.context.FacesContext,
 javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, 
java.lang.String) line: 397
        
org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer(org.apache.myfaces.renderkit.html.HtmlTableRendererBase).renderFacet(javax.faces.context.FacesContext,
 javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, 
boolean) line: 311
        
org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer(org.apache.myfaces.renderkit.html.HtmlTableRendererBase).encodeBegin(javax.faces.context.FacesContext,
 javax.faces.component.UIComponent) line: 75
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable(javax.faces.component.UIComponentBase).encodeBegin(javax.faces.context.FacesContext)
 line: 303
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable(javax.faces.component.UIData).encodeBegin(javax.faces.context.FacesContext)
 line: 372
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable(org.apache.myfaces.component.html.ext.HtmlDataTableHack).encodeBegin(javax.faces.context.FacesContext)
 line: 122
        
jsf.component.RowAndColumnRelationshipsHtmlDataTable(org.apache.myfaces.component.html.ext.HtmlDataTable).encodeBegin(javax.faces.context.FacesContext)
 line: 259
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag(javax.faces.webapp.UIComponentTag).encodeBegin()
 line: 337
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag(javax.faces.webapp.UIComponentTag).doEndTag()
 line: 250
        
jsf.component.taglib.RowAndColumnRelationshipsHtmlDataTableTag(org.apache.myfaces.taglib.UIComponentBodyTagBase).doEndTag()
 line: 55
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_example_rowAndColumnRelationshipsHtmlDataTable_0(javax.servlet.jsp.tagext.JspTag,
 javax.servlet.jsp.PageContext) line: not available
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_h_form_0(javax.servlet.jsp.tagext.JspTag,
 javax.servlet.jsp.PageContext) line: not available
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspx_meth_f_view_0(javax.servlet.jsp.PageContext)
 line: 16
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx._jspService(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: not available
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx(org.apache.jasper.runtime.HttpJspBase).service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: 94
        
org.apache.jsp.ExampleRowAndColumnRelationshipPage_jspx(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest,
 javax.servlet.ServletResponse) line: 689
        
org.apache.jasper.servlet.JspServletWrapper.service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse, boolean) line: 324
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, 
boolean) line: 292
        
org.apache.jasper.servlet.JspServlet.service(javax.servlet.http.HttpServletRequest,
 javax.servlet.http.HttpServletResponse) line: 236
        
org.apache.jasper.servlet.JspServlet(javax.servlet.http.HttpServlet).service(javax.servlet.ServletRequest,
 javax.servlet.ServletResponse) line: 689
        
org.mortbay.jetty.servlet.ServletHolder.handle(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 427
        
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(java.lang.String, 
javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, 
org.mortbay.jetty.servlet.ServletHolder, int) line: 475
        
org.mortbay.jetty.servlet.Dispatcher.dispatch(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse, int) line: 275
        
org.mortbay.jetty.servlet.Dispatcher.forward(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 169
        
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(java.lang.String)
 line: 415
        
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(javax.faces.context.FacesContext,
 javax.faces.component.UIViewRoot) line: 226
        
org.apache.myfaces.lifecycle.LifecycleImpl.render(javax.faces.context.FacesContext)
 line: 299
        javax.faces.webapp.FacesServlet.service(javax.servlet.ServletRequest, 
javax.servlet.ServletResponse) line: 95

=======================================

> post-Mathias-Broekelmann x:dataTable doesn't work with dynamically-created 
> UIColumns data.
> ------------------------------------------------------------------------------------------
>
>          Key: MYFACES-331
>          URL: http://issues.apache.org/jira/browse/MYFACES-331
>      Project: MyFaces
>         Type: Bug
>     Versions: Nightly Build
>     Reporter: Mike Kienenberger
>     Assignee: Mathias Broekelmann
>  Attachments: RowAndColumnRelationshipComponent.zip
>
> Mathias, I still have to use the BEFORE_SVN_REORG version as your new
> dataTable code still isn't working with programmically-created
> UIColumns elements -- they get lost after a page refresh, probably due
> to a save/restore state issue.   My programmically-created 
> footer-with-UICommand and UI-Column-with-UIOutput row header are saved and 
> restored properly, though.

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

Reply via email to